华为 Android8.0 使用代码安装APK没有任何反应 或崩溃

app自动更新功能 在下载完成后代码安装app

public void installApkFile(File apkFile) {
    if (apkFile != null && apkFile.exists()) {
        try {
            String[] args2 = {"chmod", "777", apkFile.getAbsolutePath()};
            Runtime.getRuntime().exec(args2);
        } catch (Exception e) {
            e.printStackTrace();
        }
        Intent installIntent = new Intent(Intent.ACTION_VIEW);
        installIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Uri uri;
        if (Build.VERSION.SDK_INT >= 24) {
            uri = FileProvider.getUriForFile(MyApplication.getContext(), MyApplication.getContext().getPackageName() + ".fileprovider", apkFile);
            installIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        } else {
            uri = Uri.fromFile(apkFile);
        }
        installIntent.setDataAndType(uri, "application/vnd.android.package-archive");
        MyApplication.getContext().startActivity(installIntent);
    }
}


在安卓6.0 7.0下均没问题

华为安卓8.0手机没有任何反应

在网上找到有出现类似问题

解决方法很简单 

只要在Mainfest.xml 中加入权限编码即可解决

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

坑爹的华为

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值