涛锅锅的Android资料8.0权限适配

android 8.0安装apk

2018-03-13  本文已影响865人  白色相簿

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;
    }
}
上一篇下一篇

猜你喜欢

热点阅读