0

I have an edittext in a form.

I connect a barcode reader USB, seen as a hardware keyboard.

When I scan a barcode, edittext create new line, instead of push the "Send" button.

How I can catch the "Enter" from barcode? Thank you

sineverba
  • 4,801
  • 6
  • 29
  • 63

1 Answers1

1

this is the duplicate from How to integrate barcode scanner with android application? , not the same but maybe help

Important! on android 2.3 you can catch barcode in OnKeyDown event, but in 4.3 your real scanner will press on any focused button, so put the code into dispatchKeyEvent and return true.

Some button still will be focused (selected, pre-pressed, highlighted, only god knows what is it), but press event won't be fired. If anybody knows how to avoid this (except auto moving focus...) tell me

@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);
}
Community
  • 1
  • 1
djdance
  • 2,998
  • 25
  • 33