我正在开发一个应用程序,让用户使用通过蓝牙连接的外部条形码扫描仪扫描条形码。条形码扫描器充当键盘,即Android认为扫描的条形码已在键盘上输入。
只要屏幕保持不变,应用程序就可以正常工作。
屏幕关闭后,我可以继续扫描条形码,但扫描的文字不再到达应用程序,而是在锁定屏幕上调用操作。
虽然屏幕已经关闭,但有没有办法允许从外部键盘输入到应用程序?
或者我必须强制屏幕保持打开状态,但这不是防弹,因为用户可能会意外锁定屏幕。
更新
我使用以下方法向正确的方向迈出了一小步:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
当处理来自键盘的新输入时,这将显示没有(非安全)锁定屏幕的应用程序。不幸的是,第一封信遗失了。这必须是由于第一个字母唤醒屏幕而其余输入实际到达EditText
。
答案 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恢复该号码。
我知道这是一个黑客,但它应该解决这个问题。