Android無法安裝apk,8.0未知來源應用安裝權(quán)限

Android 新版本的出現(xiàn) ,適配Android8.0未知來源應用安裝權(quán)限處理

1、在清單文件中增加請求安裝權(quán)限

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


private void showChangCityDialog() {
    
    CustomDialog.Builder builder = new CustomDialog.Builder(mContext);
    builder.setTitleStr("提示");
    builder.setBodysStr("安裝應用需要打開未知來源權(quán)限,請去設置中開啟權(quán)限");
    builder.setLeftbtnStr("取消");
    builder.setRightbtnStr("設置");
    builder.setLeftBtnColor(R.color.color_333333);
    builder.setrRightBtnColor(R.color.C6);
    builder.setOnClickListener(new CustomDialog.DialogOnItemClickListener() {
        @Override
        public void leftClick() {
            finish();
        }

        @Override
        public void rightClick() {
            //兼容8.0
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                boolean hasInstallPermission = mContext.getPackageManager().canRequestPackageInstalls();
                if (!hasInstallPermission) {
                    startInstallPermissionSettingActivity();
                } else {
                    //再次執(zhí)行安裝流程,包含權(quán)限判等
                    if (!TextUtils.isEmpty(appUrl)) {
                        //再次啟動安裝流程
                        installApk(appUrl);
                    }
                }
            }
        }
    });
    builder.create().show();
}
/**
 * 跳轉(zhuǎn)到設置-允許安裝未知來源-頁面
 */
@RequiresApi(api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity() {

    Uri packageURI = Uri.parse("package:" + BuildConfig.APPLICATION_ID);
    //注意這個是8.0新API
    Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES, packageURI);
    startActivityForResult(intent, 1);

}
image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容