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;
        }
  • Вопрос задан
  • 2582 просмотра
Решения вопроса 1
pi314
@pi314
Президент Солнечной системы и окрестностей
В принципе, помимо указаных, есть еще вагон способов убить или по крайней мере скрыть активити. Даже наэкранная клавиатура (не говоря уже про камеру, скринсейвер и т.д.) иногда позволяет уйти в настройки со всеми вытекающими :)

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

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

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

Войти через центр авторизации
Похожие вопросы