Android - установить APK через намерение - реагировать на неудачу - PullRequest
0 голосов
/ 10 октября 2018

Я устанавливаю APK с помощью следующего намерения:

val apkUri = Uri.fromFile(apkFile)
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(apkUri, "application/vnd.android.package-archive")
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
context.startActivity(intent)

Я знаю, что могу получить трансляцию PACKAGE_ADDED и затем реагировать, если APK был установлен.Тем не менее, как я могу реагировать, если установка не удалась?Например, если APK не был проанализирован правильно (например, если это для другой архитектуры) или просто, если пользователь нажимает «ОТМЕНА» в запросе?

Я также попытался startActivityForResult и соответствующие функции onActivityForResult,но это, кажется, не зависит от действий пользователя и сразу же срабатывает, когда намерение было запущено.

1 Ответ

0 голосов
/ 10 октября 2018

Ответ в том, что не существует стандартного способа сделать это.Если вы посмотрите на источник службы менеджера пакетов , то увидите, что событие не транслируется, если оно не успешно.

Теоретически можно сделать несколько вещей ...

  1. Проверьте, был ли установлен пакет, когда действие / фрагмент возобновляется после запуска этого намерения.
  2. Проверьте журналы logcat, если у вас есть для этого разрешения, и проанализируйте их для любого вывода менеджера пакетов.

Эти параметры не будут идеальными и могут работать не во всех реализациях.но может привести вас в правильном направлении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...