【问题标题】:Android barcode scanner to take only barcodesAndroid 条码扫描器仅获取条码
【发布时间】:2019-08-11 04:10:25
【问题描述】:

我正在使用内置条形码扫描仪和键盘的 Android 设备。 (设备是:品牌U8000S Android条码扫描仪)我正在尝试制作一个扫描条码并在扫描后在Toast中打印出条码的应用程序。我的问题是,可以在键盘上输入随机键和数字,它还会打印该字符序列。我需要帮助才能做到这一点,只能扫描条形码并退出应用程序。我的代码如下所示:

String barcode = "";
@Override
public boolean dispatchKeyEvent(KeyEvent e) {

    if(e.getAction()==KeyEvent.ACTION_DOWN
            && e.getKeyCode() != KeyEvent.KEYCODE_ENTER){
        lastDown = System.currentTimeMillis();
        char pressedKey = (char) e.getUnicodeChar();
        barcode += pressedKey;
    }

    if (e.getAction()==KeyEvent.ACTION_UP  && e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
       // izvještaj.add(barcode);
                 Toast.makeText(getApplicationContext(),
                "barcode--->>>" + barcode , Toast.LENGTH_LONG)
                .show();
                barcode ="";

    }
    return false;
}

【问题讨论】:

  • 与设备制造商交谈,看看是否有办法禁用设备的键盘部分,或者是否有其他 API 可用于与设备交互。如果条形码扫描仪部分只是发出击键,那么您不太可能找到一种可靠的方法来区分这些击键和键盘上的实际击键。
  • @CommonsWare 你实际上可以通过检查输入速度
  • @SteelToe:我不认为这是一种“可靠的方式”,尽管对于某些用例来说它可能已经足够了。
  • @SteelToe 您建议如何检查速度输入并根据速度获得可靠的输入值?你有例子吗?
  • 确定条码扫描器输入字符的速度,如果一个字符到另一个字符的输入速度比那个长,那么这意味着它是从键盘手写并擦除它

标签: java android barcode barcode-scanner


【解决方案1】:

我在以前的应用程序中使用过 dm77 的条形码扫描仪,这是一个非常好的和全面的库,它为如何启动和运行简单的条形码扫描提供了不错的指南。另一个好处是无需担心键盘界面。

dm77 库: https://github.com/dm77/barcodescanner

【讨论】:

  • 我是新手,有什么例子可以在我的应用程序中使用该库来扫描条形码吗?
  • @Kurt 将摄像头权限添加到您的 android 清单中,将您需要的库添加到 build.gradle 文件实现 'me.dm7.barcodescanner:zxing:1.9.13' 在@987654322 中概述的基本活动结构@ 甚至还有一个不错的示例项目,您可以通过 github.com/dm77/barcodescanner/tree/master/zxing-sample 进行测试和使用
  • 这个答案是一个严重的误解,他有一个内置条形码扫描仪的设备,而不是在寻找自定义库
  • @SteelToe 感谢您的评论,我不同意。我知道库尔特有一个内置条形码扫描仪和键盘的设备。我对使用该库的建议是为 Kurt 指明一组好的资源的方向,这些资源可以帮助他实现他想要构建的应用程序,这比根据您的建议确定条形码扫描仪和键盘的输入速度要容易得多。经过反思,我怀疑我们都没有明确建议禁用键盘。
  • 我也想过禁用键盘,但是如何,它是一个硬键盘,如果我禁用它,扫描键会起作用吗?
猜你喜欢
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多