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;

来源:https://www.cnblogs.com/kinglandsoft/p/11934682.html

相关阅读 >>

Delphi xe 获取硬盘id序列号

Delphi 检查声卡是否安装

Delphi high 返回数组下标的最大值

Delphi webbrowser 查找对话框

Delphi 倒计时源码

如何在Delphi中禁用关于“返回值...可能未定义”的警告?

Delphi 截取某个字符之前的字段

Delphi 解决webbrowser不能复制的问题

Delphi 根据数据库结构生成treeview

Delphi中补齐字符串长度

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...