У меня есть приложение, которое создает намерение и просит пользователя обновить APK.
// Fetch file from updates folder and install
File directory = BreakfastApp.getConfigFile(BreakfastApp.APP_UPDATES_DIRECTORY);
File installFile = new File(directory, BreakfastApp.APP_UPDATE_FILE);
LOG.debug(installFile.getAbsolutePath());
Intent intent = new Intent(Intent.ACTION_INSTALL_PACKAGE);
intent.setData(FileProvider.getUriForFile(requireActivity(), getContext().getApplicationContext().getPackageName(), installFile));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivity(intent);
requireActivity().finish();
Теперь этот код отлично работает при любой другой установке.Это повторяется.Как только мой код выполняет этот вызов, он показывает всплывающее окно для установки приложения, затем он говорит «Приложение установлено» и просит пользователя открыть или нажать «Готово».Если я снова проверяю приложение и повторяю попытку, оно пропускает всплывающее окно установки и переходит непосредственно к «Установленное приложение», затем «Готово» и «Открыть».Если я нажму «Открыть» и попробую снова, он снова заработает.
Интересно, если кто-то знает, почему это происходит.PS Это для Nougat и выше, но у меня была похожая проблема перед обновлением до Android 24+.PSS Я дал следующее разрешение и добавил провайдера, как я полагаю