DelphiがAPKインストール

手順 ToInstallApk(ファイル名:文字列);
VAR 
   aFileの位置:JFILE。
   意図:JIntent。
始める
      試し
          aFileの位置: = TJfile.JavaClass.init(stringtojstring(DownPath)、stringtojstring(ファイル名)); 
          意図: = TJIntent。作成します
          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-アーカイブを' )); 
          SharedActivityContext.startActivity(インテント)。
      除いて
      終了。
終わり; 


手順 ToInstallApk70(ファイル名:文字列);
VAR 
  LFILE:JFileの。
  LIntent:JIntent。
  LNet_Uri:Jnet_Uri。
開始
  場合 ではない TOSVersion.Check(70、次いで
  開始
       ToInstallApk(ファイル名)。
       出口; 
  エンド; 
  LFILE: = TJFile.JavaClass.init(StringToJString(ExtractFilePath(DownPath))、StringToJstring(ExtractFileName(ファイル名)))。
  LIntent: = TJIntent。作成しますもし TOSVersion.Check(80その後、
    LIntent.setAction(TJIntent.JavaClass.ACTION_INSTALL_PACKAGE)
  
    LIntent.setAction(TJIntent.JavaClass.ACTION_VIEW)。
  LIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK)。
  もし(TOSVersion.Check 70、その後
  始まる
    // 修正を:android.os.FileUriExposedException:Intent.getData()を介してアプリから露出
    // プロジェクト- >オプション- >アプリケーション- >エンタイトルメントのリスト- >セキュアなファイル共有- >それを確認
    LIntent.addFlags(TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSIONを)。
    LNet_Uri: =TJFileProvider.JavaClass.getUriForFile(TAndroidHelper.Context、
      StringToJString(JStringToString(TAndroidHelper.Context.getPackageName) + ' .fileprovider ' )、LFILE)。
  終了
  
    LNet_Uri: = TJnet_Uri.JavaClass.fromFile(LFILEを)。
  LIntent.setDataAndType(LNet_Uri、StringToJString(' applicationnd.android.package-アーカイブ' )); 
  TAndroidHelper.Context.startActivity(LIntent)。
エンド ;

 

おすすめ

転載: www.cnblogs.com/kinglandsoft/p/11934682.html
おすすめ