标签:data oid read jin The archive pat ack ant
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;
标签:data oid read jin The archive pat ack ant
原文地址:https://www.cnblogs.com/kinglandsoft/p/11934682.html