【问题标题】:Block further scans in android在 android 中阻止进一步扫描
【发布时间】:2014-11-12 08:52:49
【问题描述】:

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

我的问题是,当条形码被扫描时,该动作执行了大约 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 个 keyevents,所以整个过程将再执行 2 次......

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

【问题讨论】:

    标签: java android barcode scanning


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢 :D 非常简单非常容易,真丢脸 :o 我只是觉得方法更复杂 :/ 第一次测试成功:)
    猜你喜欢
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多