相信技术的力量

Android 8.0 app更新跳转系统安装界面

近日在Android 8.0手机上出现了应用无法更新的情况,具体提现在:不跳转系统安装应用界面。主要是华为系列手机,比如华为Mate9,P10,荣耀10......

搜索后得知,是由于8.0以后Android的未知来源应用安装默认是禁止的,需要到列表里开启允许才可以正常安装,在程序方面也需要做一些判断,如果用户没有允许该应用的安装,提示用户去设置允许

第一步,AndroidManifest.xml文件中配置权限

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />

第二步,在更新模块中引入兼容8.0的处理

//兼容7.0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    ......  
    //兼容8.0
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            boolean hasInstallPermission = mContext.getPackageManager().canRequestPackageInstalls();
            if (!hasInstallPermission) {
                    ToastUtil.makeText(MyApplication.getContext(), MyApplication.getContext().getString(R.string.string_install_unknow_apk_note), false);
                    startInstallPermissionSettingActivity();
                    return;
            }
    }

    ......

}

/**
 * 跳转到设置-允许安装未知来源-页面
 */
@RequiresApi(api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity() {
        //注意这个是8.0新API
        Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        mContext.startActivity(intent);
}

(完)

以上内容来自于: https://www.jianshu.com/p/af37c1c588c4

文章中有更为详尽的关于8.0的介绍和代码示例,感谢!

⬆️