Androidのアプリケーションは自動的にアップグレード

手順 _InstallApk(REV:文字列);
VAR 
  LFILE:JFileの。
  LIntent:JIntent。
開始
  LFILEを: = TJFile.JavaClass.init(StringToJString(抽出ファイルパス(改訂))、StringToJstring(抽出ファイル名(RV))); 
  LIntent: = TJIntent。作成します
  LIntent.setAction(TJIntent.JavaClass.ACTION_VIEW)。
  LIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK)。
  LIntent.setDataAndType(TJnet_Uri.JavaClass.fromFile(LFILE)、StringToJString(アプリケーション/ vnd.android.package-アーカイブ" )); 
  TAndroidHelper.Context.startActivity(LIntent)。
エンド;
手順 InstallApk(APK:文字列);
VAR 
  LFILE:JFileの。
  LIntent:JIntent。
  LNet_Uri:Jnet_Uri。
開始
  場合 ではない TOSVersion.Check(70、次いで
  開始
    _InstallApk(APK)。
    出口; 
  エンド; 
  LFILE: = TJFile.JavaClass.init(StringToJString(ExtractFilePath(APK))、StringToJstring(ExtractFileName(APK)))。
  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()を介してアプリから露出
    // プロジェクト- >オプション- >アプリケーション- >エンタイトルメントのリスト- >セキュアなファイル共有- >それは確認してください
    (TJIntent.JavaClass.FLAG_GRANT_READ_URI_PERMISSION)LIntent.addFlags。
    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(アプリケーション/ vnd.android.package-アーカイブ" )); 
  TAndroidHelper.Context.startActivity(LIntent)。
エンド ;

マニフェストリガへのAndroid 8.0以上の権限
<用途許可アンドロイド:名= 「android.permission.REQUEST_INSTALL_PACKAGES」/>

ありがとうございcodecoolieデルファイのために、FFmpegのを  http://www.CCAVC.com  http://www.DelphiFFmpeg.comそれをサポートする機会があり、作者!

オリジナル住所:http://bbs.2ccc.com/topic.asp?topicid=568834

おすすめ

転載: www.cnblogs.com/kinglandsoft/p/11434236.html