即使屏幕锁定,也允许从蓝牙键盘输入

时间:2015-03-04 14:02:38

标签: android screen-lock bluetooth-keyboard

我正在开发一个应用程序,让用户使用通过蓝牙连接的外部条形码扫描仪扫描条形码。条形码扫描器充当键盘,即Android认为扫描的条形码已在键盘上输入。

只要屏幕保持不变,应用程序就可以正常工作。

屏幕关闭后,我可以继续扫描条形码,但扫描的文字不再到达应用程序,而是在锁定屏幕上调用操作。

虽然屏幕已经关闭,但有没有办法允许从外部键盘输入到应用程序?

或者我必须强制屏幕保持打开状态,但这不是防弹,因为用户可能会意外锁定屏幕。

更新

我使用以下方法向正确的方向迈出了一小步:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

当处理来自键盘的新输入时,这将显示没有(非安全)锁定屏幕的应用程序。不幸的是,第一封信遗失了。这必须是由于第一个字母唤醒屏幕而其余输入实际到达EditText

2 个答案:

答案 0 :(得分:2)

这在类似情况下对我有用。只需在应用程序处于前台时保持屏幕开启。

getWindow().addFlags(
    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
);

答案 1 :(得分:1)

如果您只丢失第一个号码,那么您可以......使用Check Digit恢复该号码。

我知道这是一个黑客,但它应该解决这个问题。