android - 从硬件条形码扫描仪读取值
问题描述
我的设备中插入了一个物理条码扫描仪,我试图用它来扫描太小以至于相机无法聚焦的条码。
在我的活动中,这些是我用来检查按键的 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
什么会允许它通过?
提前致谢
解决方案
这就像处理来自键盘的输入一样,您需要将这些值转换为字符。最好在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;
}
推荐阅读
- javascript - React -- 创建只接受 Text 作为子属性的组件的最佳方式
- android - 扑。任务“:audioplayer:verifyReleaseResources”执行失败
- javascript - 如何使用 JavaScript 添加调用另一个函数 onkeyup 的函数?
- go - 为什么“&”给我一些对象的内存地址而不给我其他的?
- python-3.x - 文件更改后 Tkinter 标签未更新
- swift - 如何将集合的 Swift 扩展限制为泛型类型?
- javascript - 带有 v-for 循环的 Vuetify 扩展面板?
- node.js - 检查我的服务器上是否存在文件-node js
- python - 如何用 Python 改进这个插值结果?
- r - R:使用 which() 函数了解 for 循环中的列表索引