华为 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" />

坑爹的华为

你可能感兴趣的:(android项目填坑)