从硬件条形码扫描仪读取值

时间:2018-11-28 12:33:15

标签: android barcode barcode-scanner

我有一个物理条形码扫描仪插入了我的设备,我试图用它来扫描太小的条形码而无法聚焦在相机上。

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

@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

什么可以使它通过?

预先感谢

1 个答案:

答案 0 :(得分:0)

就像处理键盘输入一样,您需要将这些值转换为字符。也最好在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;
}