android8以上的版本安装apk的时候需要注意获取是否安装未知来源应用的权限,但是在android11上又有变更了。
先说问题:android11 从自己的app跳转到”安装未知来源应用“权限页面之后,打开权限,返回的时候crash了,根本就跳不回自己的app
本来以为android11的相关行为又更改了,查阅了很多博客资料,都没有找到相关的说明,咨询了技术群里的朋友也未找到答案,后来偶然间把获取权限的步骤跳过了,直接安装,发现竟然成功了,特此记录,测试的app的版本如下
compileSdkVersion 29 buildToolsVersion "29.0.2"
自己在android11的真机以及模拟器,android10的模拟器上测试过,已经通过
大概逻辑如下
if (requestCode == 10086) {
if (Build.VERSION.SDK_INT > 29) {
InstallApkUtils.installApk(this, mAPKfile);
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
boolean haveInstallPermission = getPackageManager().canRequestPackageInstalls();
if (haveInstallPermission) {
if (mAPKfile != null) {
//执行安装流程
InstallApkUtils.installApk(this, mAPKfile);
} else {
if (mAPKfile.exists()) {
//执行安装流程
InstallApkUtils.installApk(BaseActivity.this, mAPKfile);
}
}
}
} else {
if (mAPKfile != null) {
//执行安装流程
InstallApkUtils.installApk(this, mAPKfile);
}
}
}
现在不确定api>29的时候是不是也是这样,如果有做过相关测试的,或者有问题,请大家指正
本文记录了一个在Android11上安装APK时遇到的问题:从应用跳转至开启“安装未知来源应用”权限页面后,返回时应用崩溃。通过调整安装流程,绕过了获取权限步骤并成功安装。适用于API大于29的情况。
3801

被折叠的 条评论
为什么被折叠?



