第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Android 8.0 下載安裝進(jìn)入【安裝未知應(yīng)用】頁(yè)面,兩步簡(jiǎn)化一步

標(biāo)簽:
Android

    小菜昨天接到客户反馈的问题,说华为手机升级到 Android 8.0 系统以后,程序升级下载之后不能安装;找一个手机测试果然如此,每次下载完之后不跳转安装页面,重新进入程序又继续下载,之后依旧不跳转安装页面,再次进入循环...流程自然欠妥,但发现问题主要还是 Android8.0 权限管理的问题。
      在 Android 8.0 系统中,未知来源应用不可直接安装,跳转到的是未知来源应用管理列表,如果需要安装,则需要手动授权"安装未知应用"。


      网上大神们解决方案很多,基本一致,但小菜尝试发现每次安装跳转到【安装未知应用列表】页面,之后找到相应的应用,进入【安装未知应用】页面,再手动允许安装应用,小菜想弹框提醒一步允许安装,尝试如下:

  1. 权限添加,在 AndroidManifest.xml 清单文件中,添加如下权限;

<users-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
  1. 在【打开安装包】的代码中添加兼容 Android 8.0 的代码判断;

private void notifyToInstall() {    if (!StringUtils.isBlank(apkPath)) {
        Intent intent = new Intent(Intent.ACTION_VIEW);        // 由于没有在Activity环境下启动Activity,设置下面的标签
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        if (Build.VERSION.SDK_INT >= 24) { //判读版本是否在7.0以上
            //参数1 上下文, 参数2 Provider主机地址 和配置文件中保持一致  参数3  共享的文件
            Uri apkUri =
            FileProvider.getUriForFile(context, "com.founder.newaircloud.fileprovider", new File(apkPath));            //添加这一句表示对目标应用临时授权该Uri所代表的文件
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            intent.setDataAndType(apkUri, "application/vnd.android.package-archive");            //兼容8.0
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {                boolean hasInstallPermission = mContext.getPackageManager().canRequestPackageInstalls();                if (!hasInstallPermission) {
                    Intent intent2 = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
                    intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    activity.startActivityForResult(intent2, 100);                    return;
                }
            }
        } else {
            intent.setDataAndType(Uri.fromFile(new File(apkPath)), "application/vnd.android.package-archive");
        }
        activity.startActivity(intent);
    }
}

webp

安装未知应用列表页面

webp

安装未知应用页面

  1. 在回调过程中添加一个状态,activity.startActivityForResult(intent2, 100); apkUrl 为下载到本地手机的 apk 路径,接收之后直接安装 apk;

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {    super.onActivityResult(requestCode, resultCode, data);    if (requestCode == 100) {        if (!StringUtils.isBlank(mCache.getAsString("apkUrl"))) {
            installApk(mCache.getAsString("apkUrl"));
        }
    }
}//安装应用private void installApk(String apkUrl) {
    Intent intent = new Intent(Intent.ACTION_VIEW);    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
        intent.setDataAndType(Uri.fromFile(new File(apkUrl)),                "applicationnd.android.package-archive");
    } else {//Android7.0之后获取uri要用contentProvider
        Uri apkUri =
                FileProvider.getUriForFile(context, "com.founder.chenbaoxinjiang.fileprovider", new File(apkUrl));        //添加这一句表示对目标应用临时授权该Uri所代表的文件
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        intent.setDataAndType(apkUri, "applicationnd.android.package-archive");
        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    }
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    getBaseContext().startActivity(intent);
}

webp

合并为一步,允许安装



作者:老菜和尚


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
移動(dòng)開(kāi)發(fā)工程師
手記
粉絲
168
獲贊與收藏
165

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消