Задать вопрос
gadfi
@gadfi
https://gamega.org

Неубиваемая Activity, как реализовать ?

Доброго времени суток.
Как сделать activity, которую нельзя закрыть. Девайс используется как измерительное устройство, пользователь не должен получить доступ к другим функциям.
Проверяю в сервисе запущена ли activity и если нет запускаю, но на некоторых телефонах после нажатия кнопки домой можно успеть попасть в звонилку, на некоторых в настройки и при этом activity не вотсанавливается

while (!Setting.getPassword(getApplicationContext()).equals(CryptoUtil.getHash(Setting.SALT1 + Setting.pseudoID+Setting.SALT2) )){
                    AudioManager aManager = (AudioManager) getSystemService(AUDIO_SERVICE);
                    aManager.setRingerMode(aManager.RINGER_MODE_SILENT);
                    if (!isRunning(getApplication())) {
                        Intent dialogIntent = new Intent(getBaseContext(), MyActivity.class);
                        dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        getApplication().startActivity(dialogIntent);
                    }
                }


public boolean isRunning(Context ctx) {
            ActivityManager activityManager = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE);
            List<ActivityManager.RunningTaskInfo> tasks = activityManager.getRunningTasks(Integer.MAX_VALUE);

            for (ActivityManager.RunningTaskInfo task : tasks) {
                if (ctx.getPackageName().equalsIgnoreCase(task.baseActivity.getPackageName()))
                    return true;
            }

            return false;
        }
  • Вопрос задан
  • 2586 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Android-разработчик с нуля
    14 месяцев
    Далее
  • Skillbox
    Разработчик игр на Unreal Engine 4 с нуля до Middle
    12 месяцев
    Далее
  • Яндекс Практикум
    Android-разработчик
    12 месяцев
    Далее
Решения вопроса 1
pi314
@pi314
Президент Солнечной системы и окрестностей
В принципе, помимо указаных, есть еще вагон способов убить или по крайней мере скрыть активити. Даже наэкранная клавиатура (не говоря уже про камеру, скринсейвер и т.д.) иногда позволяет уйти в настройки со всеми вытекающими :)

Единственное полноценное решение проблемы, это сборка собственной прошивки.

Ну, а из более дешевых, но все еще сердитых: сделать свой лаунчер или же контроллировать наличие таскбара (тупо убивать процесс, когда он не нужен) из своего приложения... правда, для этого нужен root.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы