0
我想以編程方式檢查確定用戶提供的輸入是來自軟鍵盤還是連接到android平板電腦的條碼掃描器。如何檢查輸入是由條形碼掃描儀還是通過軟鍵盤輸入?
在我想應用此的活動中沒有編輯文本,因此請避免提供可通過EditText應用的解決方案。
我想以編程方式檢查確定用戶提供的輸入是來自軟鍵盤還是連接到android平板電腦的條碼掃描器。如何檢查輸入是由條形碼掃描儀還是通過軟鍵盤輸入?
在我想應用此的活動中沒有編輯文本,因此請避免提供可通過EditText應用的解決方案。
使用dispatchKeyEvent,您可以偵聽條形碼掃描器中的任何KeyEvent。
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
// do something on input
return false; // prevent default behaviour
}
使用下面的代碼來讀取條碼掃描儀輸入/值,這樣的onkeydown您需要在活動/對話
String barcode="";
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
log("Key Down keyCode " + keyCode);
if (keyCode == KeyEvent.KEYCODE_BACK) {
return super.onKeyDown(keyCode, event);
} else if (keyCode == KeyEvent.KEYCODE_ENTER) {//if scanner doesn't return enter key code then make sure that any view must not have focus in window
//write your code to process the scanned barcode input
barcode = "";
} else {
Character input = (char) event.getUnicodeChar();
log("Scanner Input " + input);
if (Character.isDigit(input) || Character.isLetter(input)) {
barcode += input;//concat the characters
}
}
return true;
}
檢查此鏈接https://stackoverflow.com/questions/29769204覆蓋/檢測輸入從軟件或硬件鍵盤 –
好的謝謝,但我想知道是否在一個活動中沒有編輯文本,但仍然用戶從硬件鍵輸入。 –
如果沒有'EditText',那麼通常沒有輸入法編輯器(軟鍵盤)顯示,因此任何輸入都來自設備按鈕,藍牙鍵盤,USB鍵盤等。 – CommonsWare