我的应用程序有一个自动更新功能,可以下载一个 APK,当下载完成时,会有一个 Inent.VIEW _ ACTION 打开应用程序,让用户安装下载的 APK
Uri uri = Uri.parse("file://" + destination);
Intent install = new Intent(Intent.ACTION_VIEW);
install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
install.setDataAndType(uri,
manager.getMimeTypeForDownloadedFile(downloadId));
activity.startActivity(install);
这对于所有 < 24的设备都非常有效
现在有了 Android 24,我们显然不再被允许使用 File:///开始意图,在一些谷歌搜索之后,它被建议使用文件提供程序
新密码:
Intent install = new Intent(Intent.ACTION_VIEW);
install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
install.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Uri apkUri = FileProvider.getUriForFile(AutoUpdate.this,
BuildConfig.APPLICATION_ID + ".provider", file);
install.setDataAndType(apkUri,
manager.getMimeTypeForDownloadedFile(downloadId));
activity.startActivity(install);
现在 activity.startActivity (install) ; 抛出一个错误
没有找到处理意图{ act = android.Intent.action.VIEW 的活动 Dat = content://com.xxxx.xx.Provider/MyFolder/Download/MyApkFile.apk Type = application/vnd.android.package-archive flg = 0x400000}
有没有什么方法可以在 Android 7(24)中打开 APK 查看器?