Как мне разблокировать устройство из ActivityInstrumentationTestCase2, не используя KeyguardManager?

#android

#Android

Вопрос:

KeyguardManager устарел.

Какой код я теперь должен использовать,
чтобы разблокировать устройство из ActivityInstrumentationTestCase2
перед запуском теста?

Ответ №1:

Есть ли у вас доступ к объекту Window из этого кода? Если да, вы можете включить keyguard следующим образом:

 getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
  

а затем отключите keyguard следующим образом:

 getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION);
  

Комментарии:

1. Спасибо за ваш ответ, но я получаю: «java.lang. Исключение SecurityException: для ввода в другое приложение требуется разрешение INJECT_EVENTS» с вашим предложением и всеми соответствующими флагами разрешений (FLAG_DISMISS_KEYGUARD и friends), установленными в окне. Я думаю, что невозможно (или когда-либо было возможно даже с KeyguardManager) разблокировать устройство из кода. Так что вопрос бессмыслен. Это связано с тем, что я путаю заблокированный экран с защищенным экраном. Решение состоит в том, чтобы отключить keyguard во время разработки.

2. Я неправильно понял ваш первоначальный вопрос. Не обращайте внимания на этот ответ.

Ответ №2:

Вопрос бессмысленный.
Это связано с тем, что я путаю заблокированный экран с защищенным экраном.
Решение заключается в отключении keyguard / keylock во время разработки.