0
我在窗体中有一个edittext。Android和外部USB条码扫描器:如何捕捉输入?
我连接一个条形码读取器USB,看作是一个硬件键盘。
当我扫描一个条形码时,edittext创建新行,而不是按下“发送”按钮。
如何从条形码中捕捉“Enter”?谢谢
我在窗体中有一个edittext。Android和外部USB条码扫描器:如何捕捉输入?
我连接一个条形码读取器USB,看作是一个硬件键盘。
当我扫描一个条形码时,edittext创建新行,而不是按下“发送”按钮。
如何从条形码中捕捉“Enter”?谢谢
这是重复的从How to integrate barcode scanner with android application?,不一样的,但也许有助于
重要!在android 2.3上,你可以在OnKeyDown事件中捕获条形码,但在4.3中,你的真实扫描器将按任何聚焦的按钮,所以把代码放入dispatchKeyEvent并返回true。
某些按钮仍然会聚焦(选中,预先按下,突出显示,只有上帝知道它是什么),但新闻事件不会被解雇。如果有人知道如何避免这种情况(除了自动移动焦点...)告诉我
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
//barcode scanner
int c=event.getUnicodeChar();
//accept only 0..9 and ENTER
if ((c>=48 && c<=57) || c==10){
if (event.getAction()==0) {
if (c >= 48 && c <= 57)
barcode += "" + (char) c;
else {
if (!barcode.equals("")) {
final String b = barcode;
barcode = "";
new Thread(new Runnable() {
public void run() {
checkBarcode(b);
//there you get a string and compare it or store etc
}
}).start();
}
}
}
return true;
}
return super.dispatchKeyEvent(event);
}