-1

这是我的代码:

i.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true);
i.setDataAndType(Uri.parse(FileUtil.getPublicDir(Environment.DIRECTORY_DOWNLOADS).concat("/Vertretungsplan.apk")), "application/vnd.android.package-archive");
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

但是,当我开始活动时,包安装程序不会显示为“打开方式”。

4

2 回答 2

1

那不是一个有效的Uri. AUri有一个方案;您尝试解析的值没有。

在 Android 6.0 及更低版本上,用于为您的文件Uri.fromFile()构建。Uri

在 Android 7.0+ 上,由于该file方案被禁止,您需要FileProvider为您的应用程序配置并使用Uri它。不幸的是,这不适用于 Android 6.0 及更低版本,因为包安装程序当时无法处理content Uri值。因此,您需要检查运行您的应用的 Android 版本并使用适当的方法。

于 2019-04-25T17:27:49.990 回答
0

向您的清单添加REQUEST_INSTALL_PACKAGES权限

于 2019-04-25T17:17:10.707 回答