7

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

只要屏幕保持打开状态,该应用程序就可以正常工作。

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

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

或者,我将不得不强制屏幕保持打开状态,但这不是防弹的,因为用户可能会不小心锁定屏幕。

更新

通过使用,我朝着正确的方向迈出了一小步:

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

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

4

2 回答 2

3

在类似的情况下,这对我有用。当您的应用程序在前台时,只需保持屏幕打开即可。

getWindow().addFlags(
    WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
    | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
    | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
);
于 2015-03-14T05:16:51.957 回答
1

如果您只丢失了第一个数字,那么您可以...使用Check Digit恢复它。

我知道这是一个 hack,但它应该可以解决这个问题。

于 2015-03-04T16:42:37.963 回答