Подтвердить что ты не робот

Как отключить разблокировку экрана программно

  1. Мне нужно заблокировать телефон Android, когда пользователь покидает определенную зону WiFi
  2. Мне нужно, чтобы пользователь не разблокировал телефон, когда он/она находится вне определенной зоны WiFi
  3. Мне нужно разблокировать телефон, когда пользователь вернулся в зону WiFi

Я думаю, пункты 1 и 3 списка могут быть сделаны программно.

Можно ли сделать 2- й предмет?

4b9b3361

Ответ 1

Мне нужно запретить пользователю разблокировать телефон, когда он находится вне определенной области WiFi

К счастью, это не поддерживается по очевидным соображениям безопасности.

Вы можете создать свой собственный домашний экран, который предлагает другое поведение, когда внутри/за пределами определенной области и использовать это вместо попытки предотвратить разблокировку телефона. Тем не менее, пользователь может удалить этот домашний экран, загрузив свое устройство в безопасный режим и удалив ваше приложение.

Ответ 2

Блокировка может быть выполнена с помощью этого метода: Как заблокировать экран устройства Android. Разблокировка смотрите здесь: Как отображать активность, когда экран заблокирован?

Для вашей проблемы 2, я вижу 2 решения

а. Если пользователь разблокирует экран, выдается сообщение: проверьте в тот момент, если вы находитесь в этой области, а если нет, немедленно закройте снова

б. создайте свой собственный locksreen без возможности разблокировать себя

Ответ 3

Я сделал аналогичную вещь в прошлом, но не имею кода прямо сейчас, поэтому не могу помочь в этом отношении. То, что я сделал, - это реализовать приложение как автомобильную док-станцию, которая заставит кнопку "Домой" переопределить, если режим автомобильной док-станции не отключен. Я надеюсь, что это поможет, для кода google он определенно найдет ресурсы

Ответ 5

private Window w;

public void onResume() {

    w = this.getWindow();
    w.addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
    w.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    w.addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
    super.onResume();       
    tToast("onResume");
}