测试机版本: 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); }