Как отключить разблокировку экрана программно - PullRequest
11 голосов
/ 03 октября 2011
  1. Мне нужно заблокировать телефон Android, когда пользователь покидает определенную зону WiFi
  2. Мне нужно запретить пользователю разблокировать телефон, когда он / она находится вне определенной зоны WiFi
  3. Мне нужно разблокировать телефон, когда пользователь возвращается в зону WiFi

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

Возможно ли это сделать2 nd предмет?

Ответы [ 5 ]

6 голосов
/ 03 октября 2011

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

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

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

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

5 голосов
/ 03 октября 2011

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

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

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

3 голосов
/ 03 октября 2011

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

1 голос
/ 03 октября 2011

Я думаю, это поможет вам.Это только для Disabling Блокировка Programmatically. Отключение блокировки экрана

0 голосов
/ 07 сентября 2012
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");
}
...