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) {
            //安装apk
            installApk();         
        } else {
            //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()
    }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case GET_UNKNOWN_APP_SOURCES:
            checkOreo();
            break;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容