Android 7.0及以上利用FileProvider安装apk注意事项

Android 7.0及以上利用FileProvider安装apk一定要声明权限,避免当成未知应用被阻止安装

利用FileProvider安装apk

/**
 * 通过隐式意图调用系统安装程序安装apk
 */
Intent intent = new Intent(Intent.ACTION_VIEW);
//由于没有在Activity环境下启动Activity,设置下面的标签
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    Uri fileUri = FileProvider.getUriForFile(context, context.getApplicationContext().getPackageName() + ".fileProvider", appFile);
    intent.setDataAndType(fileUri, "application/vnd.android.package-archive");
} else {
    intent.setDataAndType(Uri.fromFile(appFile), "application/vnd.android.package-archive");
}
context.startActivity(intent);

声明权限,避免被当成未知应用被阻止安装

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
上一篇 Atlas加载Google登录的远程Bundle设计
下一篇 Android P 适配踩坑记录
目录
文章列表
1 pkcs1与pkcs8格式RSA私钥互相转换
pkcs1与pkcs8格式RSA私钥互相转换
2
Dart接口的实现
Dart接口的实现
3
Kubernetes api微服务开发之pod创建与删除
Kubernetes api微服务开发之pod创建与删除
4
CentOS下安装Confluence 7.1.1 bin包
CentOS下安装Confluence 7.1.1 bin包
5
Android测试(3):Android单元测试
Android测试(3):Android单元测试
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。