首页 > 解决方案 > 从硬件条形码扫描仪读取值

问题描述

我的设备中插入了一个物理条码扫描仪,我试图用它来扫描太小以至于相机无法聚焦的条码。

在我的活动中,这些是我用来检查按键的 2 个功能,因为我假设它被作为硬件键盘处理。

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    Log.v("KeyPressed", "here");
    return true;
}

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    Log.i("KeyPressed", String.valueOf(event.getKeyCode()));
    return super.dispatchKeyEvent(event);
}

日志是这样出来的:

2018-11-28 12:27:17.176 23132-23132/uk.wefix I/KeyPressed: 59
2018-11-28 12:27:18.158 23132-23132/uk.wefix I/KeyPressed: 71
2018-11-28 12:27:18.171 23132-23132/uk.wefix I/KeyPressed: 71
2018-11-28 12:27:18.171 23132-23132/uk.wefix V/KeyPressed: here

但是我不确定如何获取条形码扫描仪发送的实际内容。如果我有一个文本输入焦点,那么我会出现以下内容034234243423

什么会允许它通过?

提前致谢

标签: androidbarcodebarcode-scanner

解决方案


这就像处理来自键盘的输入一样,您需要将这些值转换为字符。最好在onKeyDown()使用下面的代码中使用它。

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

推荐阅读