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