1、兼容7.0
Intent intent = new Intent(Intent.ACTION_VIEW);
File apkFile = new File(mSavePath, apkName);
//兼容7.0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
//把读取APK文件权限添加给安装方(安装方安装我们APP下载的APK文件,需要读取我们APK文件的权限)
intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri contentUri = FileProvider.getUriForFile(mContext, BuildConfig.APPLICATION_ID + ".fileProvider", apkFile);
intent.setDataAndType(contentUri, "application/vnd.android.package-archive");
} else {
intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
if (mContext.getPackageManager().queryIntentActivities(intent, 0).size() > 0) {
mContext.startActivity(intent);
}
2、兼容8.0,需要在清单文件AndroidManifest.xml添加权限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />