Как отключить Keyguard и отобразить активность для пользователя, когда получатель SCREEN_ON запущен? - PullRequest
8 голосов
/ 20 ноября 2010

Как я могу отключить защиту клавиатуры, когда широковещательный приемник активирован screen_on, чтобы, когда это происходит, пользователь увидел действие, которое я начал за ним? (Действие уже выполняется ...)

Я пробовал следующий код из приемника вещания, вызванного выключением экрана ...

KeyguardManager  myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
myLock = myKeyGuard.newKeyguardLock();
myLock.disableKeyguard();

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

Ответы [ 3 ]

5 голосов
/ 13 февраля 2011

Я бы порекомендовал использовать флаги окна dismiss_keyguard или show_when_locked, если у вас есть окно, которое должно открываться поверх экрана блокировки прямо при пробуждении.

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED

как вы используете это следующим образом (вызывается в onCreate перед настройкой макета)

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
1 голос
/ 28 марта 2014

Я не вижу, чтобы решение Keyguard работало (и оно устарело).Для меня работает захват перманента PARTIAL_WAKE_LOCK, который я никогда не выпускаю.Это предотвращает истинное засыпание устройства и, таким образом, предотвращает активацию экрана блокировки каждый раз.

Затем каждый раз, когда экран выключается, я слушаю это уведомление и снова включаю устройство.Он работает на всех устройствах, на которых я тестировал.

Я понимаю, что это довольно быстро разряжает батарею устройства, поэтому вы должны использовать это очень экономно и осознанно.

1 голос
/ 23 ноября 2010

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

...