Диалоговое окно установки не отображается в oreo, когда выполняется программно, если устройство не имеет прав root
Я пытаюсь обновить приложение после отображения диалогового окна с предупреждением в моем приложении. Работает нормально ниже Android Oreo. Вот что я пробовал до сих пор
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);
Как отобразить это диалоговое окно обновления приложения на устройствах без рута. Любая помощь будет оценена. Спасибо заранее.
1 ответ
Решение
Проверьте ниже разрешение в вашем файле manifest.xml.
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
Также проверьте ваш провайдер файла для Intent.VIEW_ACTION.
Дополнительные ссылки смотрите на этой странице. Android install apk с Intent.VIEW_ACTION не работает с провайдером файлов.
наслаждайся кодом.