測試機版本: Android 5, Android 6 , Android 9 , Android 10
問題: 高版本的手機,下載完安裝包之后,沒有跳轉到Android的安裝界面,刷新頁面,重新進入APP。
原因: Android7.0以后,增加了未知來源應用的權限,需要在AndroidManifest.xml清單文件中添加權限。
解決:
在AndroidManifest.xml文件中添加權限
<!-- 安裝未知來源權限--> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
安裝App代碼實現
public void installAPK(apkPath,apkName) { // 假設:apkPath = "/storage/emulated/0/test" // pakName = test.apk File apkFile = new File(apkPath, apkName); if (!apkFile.exists()){ return; } Intent intent = new Intent(Intent.ACTION_VIEW); // 安裝完成后,啟動app intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Android 版本在7.0以上 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N){ ////Android7.0之后獲取uri要用contentProvider Uri apkUri = FileProvider.getUriForFile(mContext, "包名.fileprovider", new File(apkFile.toString())); //添加這一句表示對目標應用臨時授權該Uri所代表的文件 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setDataAndType(apkUri, "application/vnd.android.package-archive"); }else { Uri uri = Uri.parse("file://" + apkFile.toString()); intent.setDataAndType(uri, "application/vnd.android.package-archive"); } mContext.startActivity(intent); }