如何通过条形码扫描仪或软键盘检查输入?

时间:2017-08-30 11:41:03

标签: android usb barcode-scanner host

我想检查以编程方式确定用户提供的输入是来自软键盘还是连接到Android平板电脑的条形码扫描器。

活动中没有我想要应用此的编辑文本,因此请避免提供适用于EditText的解决方案。

2 个答案:

答案 0 :(得分:0)

使用dispatchKeyEvent,您可以侦听条形码扫描器中的任何KeyEvent。

@Override
public boolean dispatchKeyEvent(KeyEvent e) {
// do something on input
   return false; // prevent default behaviour
}

答案 1 :(得分:0)

使用以下代码从条形码扫描器读取输入/值,因此需要在活动/对话框中覆盖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;
}