Android 利用FileProvider安裝apk一定要宣告許可權,避免當成未知應用被阻止安裝
阿新 • • 發佈:2019-01-10
首先看看我們利用FileProvider來安裝apk的常規操作
/** * 通過隱式意圖呼叫系統安裝程式安裝APK */ public void install(Context context,File file) { Intent intent = new Intent(Intent.ACTION_VIEW); // 由於沒有在Activity環境下啟動Activity,設定下面的標籤 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //判讀版本是否在7.0以上 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { //引數1 上下文, 引數2 Provider主機地址 和配置檔案中保持一致 引數3 共享的檔案 Uri apkUri = FileProvider.getUriForFile(context, "com.xxx.xxx.fileprovider", file); //新增這一句表示對目標應用臨時授權該Uri所代表的檔案 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); } else { intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); } context.startActivity(intent); }
這些常規操作大家都應該知道,但是隻有這些是不夠的,有時候並能在正常安裝,重要的是記得宣告許可權,避免被當成未知應用被阻止安裝了~~~
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />