android 8.0安装apk

android 8.0安装apk需要请求未知来源权限

//xml配置
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
/**
 * 检测版本8.0
 */
public void checkOreo() {
    if (SdkVersionUtils.hasOreo()) {//8.0
        //判断是否可以直接安装
        boolean canInstall = getPackageManager().canRequestPackageInstalls();
        if (canInstall) {
            //rxpermissions请求权限
            mRxPermissions
                    .request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
                    .subscribe(granted -> {
                        if (granted) {
                            //安装apk
                            installApk();
                        } else if (shouldShowRequestPermissionRationale(Manifest.permission.REQUEST_INSTALL_PACKAGES)) {
                             //引导用户去打开权限
                            Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
                            startActivityForResult(intent, GET_UNKNOWN_APP_SOURCES);
                        } else {
                            Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
                            startActivityForResult(intent, GET_UNKNOWN_APP_SOURCES);
                        }
                    });
        } else {
            //安装apk
            installApk();
        }
    } else {
        //安装apk
        installApk()
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case GET_UNKNOWN_APP_SOURCES:
            checkOreo();
            break;
    }
}
    原文作者:白色相簿
    原文地址: https://www.jianshu.com/p/ab5328badf0f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞