Я запускаю приложение для Android, чтобы оно было единственным приложением для работы в системе, поэтому после завершения загрузки я запускаю приложение и не позволяю пользователю выйти из него по любой причине (что заставило меня отключить обе строки состояния навигации).
Затем, чтобы получить обновление для приложения, я смотрю, есть ли новое, и если да, запускаю фоновую задачу для загрузки нового обновления с sftp-сервера, используя jsch, и когда приложение завершит загрузку, я установлю apk, используя ACTION_VIEW
намерение:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/update_app.apk")), "application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Проблема здесь в том, что когда установка завершена, появляется экран Android по умолчанию:
и это дает пользователю возможность выбрать Готово || Открыть, и, конечно же, если пользователь выберет Готово, это приведет к закрытию окна, а приложение уже закрыто, поскольку оно обновляется, поэтому пользователь переходит к системный интерфейс, который вообще не приветствуется.
имейте в виду, что я не могу открыть приложение программно, так как при установке обновления оно удаляет старую версию, поэтому мне нужно сделать один из двух вариантов, которых я не знаю, как добиться:
Принудительно открывать приложение по умолчанию после завершения установки.
Измените экран завершения установки системы или переопределите действия кнопок.