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