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);
}