我有一个物理条形码扫描仪插入了我的设备,我试图用它来扫描太小的条形码而无法聚焦在相机上。
在我的活动中,这是我用来检查按键的两个功能,因为我假设它是作为硬件键盘处理的。
@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
什么可以使它通过?
预先感谢
答案 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;
}