Android 8.1 (API 27) - клавиатура не отображается в приложении в режиме киоска после перезагрузки - PullRequest
0 голосов
/ 07 декабря 2018

Я сделал приложение в режиме киоска, которое хорошо работает после установки (основано на Activity.startLockTask ()).

После перезагрузки устройства (Nexus 5X под управлением Android 8.1) я не могу использовать приложение, поскольку не удается отобразить клавиатуру на экране.

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

Есть идеи, почему она так себя ведет?

Приложение хорошо работает на эмуляторе Android 8.1 итакже хорошо работает на Android 5.1 и Android 6.0

Любая помощь будет высоко ценится!

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Это происходит, когда вы пытаетесь активировать киоск, когда активна клавиатура.Перед активацией киоска необходимо проверить KeyguardManager.isKeyguardLocked ().

Есть раздел об этой проблеме (немного косвенный) в https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode#start_lock_task_mode

Не запускать блокировкурежим задачи, когда устройство заблокировано, поскольку пользователь может не иметь возможности разблокировать устройство

0 голосов
/ 09 декабря 2018

Я решил проблему, добавив эту строку кода в метод onCreate () (сразу после вызова super.onCreate ()):

getWindow (). AddFlags (WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

То же самое следует добавить при создании диалоговых окон (до вызова Dialog.show ()).

...