У меня есть сканер штрих-кода, и я хочу получить его ввод, т. Е. Штрих-код, в приложении без фокуса EditText
.android get barcode scanner input без edittext
Я попытался добавить KeyListener
в мой Activity
. Однако ни один из его реализованных методов (onKeyUp
, onKeyDown
и т. Д.) Не был вызван.
Затем я добавил dispatchKeyEvent
, который работал, но никогда не вызывается столько раз, сколько длина штрих-кода. Вместо этого, прежде чем читать штрих-код, некоторые случайные button
, на мой взгляд, получают фокус от сканера штрих-кода.
String barcode = "";
@Override
public boolean dispatchKeyEvent(KeyEvent e) {
char pressedKey = (char) e.getUnicodeChar();
barcode += pressedKey;
if (e.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
Toast.makeText(getApplicationContext(), "barcode--->>>" + barcode, Toast.LENGTH_LONG)
.show();
}
return super.dispatchKeyEvent(e);
}
Я видел несколько вопросов там, в SO, но никто не дал конкретного ответа.
Я думаю, чтобы действительно решить эту проблему, вам понадобится документация из сканера штрих-кода - что именно он должен отправлять в ваше приложение? Это эмуляция клавиатуры (обычная вещь) или что-то еще? Любые другие подсказки из документации устройства? – GreyBeardedGeek
Искал документацию, но ничего не нашел. Я проверил его с помощью «EditText», и мой единственный вывод заключается в том, что после отправки номера штрих-кода один за другим он выдает «ENTER» – XeniaSis