如果设备未植根,则以编程方式完成安装对话框不会显示在 oreo 中
Installation dialog not shown in oreo when done programatically if device is not rooted
我正在尝试在我的应用程序中显示警告对话框后更新应用程序。它在 Android 奥利奥以下工作正常。这是我到目前为止尝试过的方法
String ANDROID_PACKAGE = "application/vnd.android.package-archive";
File update_apk = new File(context.getFilesDir(), intent.getStringExtra("update_file"));
Intent notificationIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
notificationIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
notificationIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
notificationIntent.setDataAndType(
FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileprovider", update_apk),
ANDROID_PACKAGE);
} else {
notificationIntent = new Intent(Intent.ACTION_VIEW);
notificationIntent.setDataAndType(
Uri.parse("file://" + update_apk.getAbsolutePath()),
ANDROID_PACKAGE);
}
startActivity(notificationIntent);
如何在没有root的设备上显示这个应用程序更新对话框。任何帮助,将不胜感激。提前致谢。
检查您的 manifest.xml 文件中的以下权限。
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
同时检查您的文件提供商是否有 Intent.VIEW_ACTION。
更多参考查看此页面
享受代码。
我正在尝试在我的应用程序中显示警告对话框后更新应用程序。它在 Android 奥利奥以下工作正常。这是我到目前为止尝试过的方法
String ANDROID_PACKAGE = "application/vnd.android.package-archive";
File update_apk = new File(context.getFilesDir(), intent.getStringExtra("update_file"));
Intent notificationIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
notificationIntent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
notificationIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
notificationIntent.setDataAndType(
FileProvider.getUriForFile(context, BuildConfig.APPLICATION_ID + ".fileprovider", update_apk),
ANDROID_PACKAGE);
} else {
notificationIntent = new Intent(Intent.ACTION_VIEW);
notificationIntent.setDataAndType(
Uri.parse("file://" + update_apk.getAbsolutePath()),
ANDROID_PACKAGE);
}
startActivity(notificationIntent);
如何在没有root的设备上显示这个应用程序更新对话框。任何帮助,将不胜感激。提前致谢。
检查您的 manifest.xml 文件中的以下权限。
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
同时检查您的文件提供商是否有 Intent.VIEW_ACTION。
更多参考查看此页面
享受代码。