通过Android设备处理条形码扫描仪值

时间:2012-07-05 17:34:53

标签: android barcode barcode-scanner

我正试图通过我的Android 3.2平板电脑处理条形码扫描仪USB的价值,扫描仪在操作系统中成功运行,但我希望在没有编辑文本的情况下获得程序中的价值,usbmanager主机和配件没有列出通过USB连接设备。

4 个答案:

答案 0 :(得分:6)

大多数插件条码扫描器(我见过)都是HID配置文件设备,因此无论插入什么,都应该将它们视为键盘。我想这就是为什么它们没有出现在USB主机API附件列表中。您应该可以通过覆盖Activity.onKeyDown(int keycode, KeyEvent ke)

来获取他们的原始输入,就像您在Activity中使用键盘一样

您的活动中有类似的内容:

@Override
protected boolean onKeyDown(int keyCode, KeyEvent event) {
     Log.i("TAG", ""+ keyCode);
     //I think you'll have to manually check for the digits and do what you want with them.
     //Perhaps store them in a String until an Enter event comes in (barcode scanners i've used can be configured to send an enter keystroke after the code)
     return true;
 }

答案 1 :(得分:2)

您将在Activity keydown事件中获得结果。

例如: -

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    char pressedKey = (char) event.getUnicodeChar();
    Barcode += "" + pressedKey;
    Toast.makeText(getApplicationContext(), "barcode--->>>" + Barcode, 1)
            .show();
    return true;
}

希望这篇文章能为您提供帮助。

答案 2 :(得分:0)

我也有同样的问题,但是当我使用onKeyDown或onKeyUp时,每次我对条形码的每个字符都没有调用它。我使用了DiapatchKeyEvent,它工作得很好。

答案 3 :(得分:0)

public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) {
    Log.i("TAG", event.getCharacters());
    return true;
}`