Catia26安装教程:在android8中以编程方式安装apk(API26)

我写了一个方法来安装 APK 在所有版本的 Android 和它的工作原理,直到 Android 8,但似乎 Android 8 不响应此方法

install_apk(File file) {
        try {
            if (file.exists()) {
                String[] fileNameArray = file.getName().split(Pattern.quote("."));
                if (fileNameArray[fileNameArray.length - 1].equals("apk")) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                        Uri downloaded_apk = getFileUri(context, file);
                        Intent intent = new Intent(Intent.ACTION_VIEW).setDataAndType(downloaded_apk,
                                "application/vnd.android.package-archive");
                        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                        context.startActivity(intent);
                    } else {
                        Intent intent = new Intent(Intent.ACTION_VIEW);
                        intent.setDataAndType(Uri.fromFile(file),
                                "application/vnd.android.package-archive");
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        context.startActivity(intent);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

以及在 api & gt;= 23 上获取 uri 的方法

Uri getFileUri(Context context, File file) {
        return FileProvider.getUriForFile(context,
                context.getApplicationContext().getPackageName() + ".HelperCles.GenericFileProvider"
                , file);
    }
64

您应该添加一个新的权限。

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

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(800)
Community音响:Android:更新汽车音响数据
上一篇
android零基础培训(含代码示例)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(64条)