zoukankan      html  css  js  c++  java
  • Delphi 安装apk

    procedure ToInstallApk(filename: string);
    var
       aFile: Jfile;
       Intent: JIntent;
    begin
          Try
              aFile := TJfile.JavaClass.init(stringtojstring(DownPath),stringtojstring(filename));
              Intent := TJIntent.Create;
              Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
              Intent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
              Intent.setDataAndType(TJnet_Uri.JavaClass.fromFile(aFile), stringtojstring('applicationnd.android.package-archive'));
              SharedActivityContext.startActivity(Intent);
          Except
          End;
    end;
    
    
    procedure ToInstallApk70(filename: string);
    var
      LFile: JFile;
      LIntent: JIntent;
      LNet_Uri: Jnet_Uri;
    begin
      if not TOSVersion.Check(7, 0) then
      begin
           ToInstallApk(filename);
           exit;
      end;
      LFile := TJFile.JavaClass.init(StringToJString(ExtractFilePath(DownPath)), StringToJstring(ExtractFileName(filename)));
      LIntent := TJIntent.Create;
      if TOSVersion.Check(8, 0) then
        LIntent.setAction(TJIntent.JavaClass.ACTION_INSTALL_PACKAGE)
      else
        LIntent.setAction(TJIntent.JavaClass.ACTION_VIEW);
      LIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
      if TOSVersion.Check(7, 0) then
      begin
        // fix: android.os.FileUriExposedException: exposed beyond app through Intent.getData()
        // Project -> Options -> Application -> Entitlement List -> Secure File Sharing -> Check it
        LIntent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION);
        LNet_Uri := TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context,
          StringToJString(JStringToString(TAndroidHelper.Context.getPackageName) + '.fileprovider'), LFile);
      end
      else
        LNet_Uri := TJnet_Uri.JavaClass.fromFile(LFile);
      LIntent.setDataAndType(LNet_Uri, StringToJString('applicationnd.android.package-archive'));
      TAndroidHelper.Context.startActivity(LIntent);
    end;
  • 相关阅读:
    如何完全禁用或卸载Windows 10中的OneDrive
    ASP.NET Web API从注释生成帮助文档
    c#中使用easyUI的DataGrid组件
    第三方分页控件aspnetPager出现问题解决方法
    ActionResult派生类
    Razor引擎的转换数据类型
    ViewData与ViewBag比较
    .net开源后可以查看的源代码
    如何让一个类可以被foreach枚举?
    .NET Framework中Object基类有哪些方法?
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/11934682.html
Copyright © 2011-2022 走看看