在android中阻止进一步扫描

时间:2014-11-12 08:52:49

标签: java android barcode scanning

我正在扫描条形码,将String放入编辑文本中并使用它进行搜索。没问题。

我的问题是,当条形码被扫描时,动作执行约3次而不是jsut一次。我猜它是因为它需要几毫秒来进行搜索并开始动作,但此时扫描程序会发送更多的扫描(相同的条形码)。

    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        Logger.i(TAG, "KeyCode: " + keyCode);
        switch(keyCode) {
        case KeyEvent.ACTION_DOWN:
            someAction();
            break;

        case KeyEvent.KEYCODE_ENTER:
            someAction()
            break;

        }
        return false;
    }

扫描工作正常,我只是在扫描实际成功后再获得2个关键事件,因此整个过程将再执行2次......

编辑:我正在使用2个不同的扫描仪,第一个发送keyCode 0另一个keyCode 66,这就是我处理这两个扫描器的原因。 keyCode 0出现问题,我还没有用其他扫描仪测试过。

1 个答案:

答案 0 :(得分:0)

创建状态(布尔值)以了解何时需要处理扫描的条形码。

示例:boolean mustHandleScan = true。当扫描确实识别条形码时,将该布尔值更改为false。并且只有在布尔值为真时才进行搜索。您可以使用计时器(可能是倒计时器)在x秒后将布尔值更改为true。这是一个易于实现的解决方案,我也使用它。