我已经制作了一个在安装后运行良好的Kiosk模式应用程序(基于Activity.startLockTask())。
重新启动设备(运行Android 8.1的Nexus 5X)后,我无法使用该应用程序,因为键盘无法显示在屏幕上。
在应用程序处于活动状态时(全屏显示并设置为设备启动程序),我将命令重新启动,以便测试重启后是否仍处于Kiosk模式。结果是它仍处于Kiosk模式,但用户无法激活软键盘。
有什么想法,为什么它的行为像这样?
该应用程序在Android 8.1模拟器上运行良好,也适用于Android 5.1和Android 6.0
任何帮助都感激不尽!
我已经通过在onCreate()方法中添加这行代码来解决了这个问题(就在调用super.onCreate()之后):
getWindow()。addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
创建对话框窗口时(在调用Dialog.show()之前)应该添加相同的内容。
当您在键盘锁处于活动状态时尝试激活自助服务终端时会发生这种情况。在激活自助服务终端之前,您需要检查KeyguardManager.isKeyguardLocked()。
在https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode#start_lock_task_mode有一个关于这个问题的部分(它有点间接)
设备锁定时,请勿启动锁定任务模式,因为用户可能无法解锁设备