1

Возможно ли каким-то образом уловить событие ввода текста, если приложение не отображает EditText (текстовое поле), и нет мягкой клавиатуры?Android - Можно ли перехватить входное событие без поля ввода и открытой мягкой клавиатуры?

ОС: Android 4.1.2

P.S. Позвольте мне объяснить, почему это необходимо: есть устройство - Motorola TC55 - (терминал сбора данных, смартфон на Android 4.1.2 со считывателем штрих-кода (лазер)), который с левой стороны имеет кнопку для сканирования.

После нажатия лазерного сканера включается, считывается штрих-код и после считывания штрих-кода символы, которые считываются, программно «нажаты».

+0

Вы пытались переопределить ['onKeyDown()' в своей деятельности] (http://developer.android.com/reference/android/app/Activity.html#onKeyDown%28int,%20android.view.KeyEvent%29)? – CommonsWare

ответ

1

Другое решение должно быть использовать Намерение предоставляемые этими устройствами, когда они читают штрих-код.

Дополнительную информацию вы можете найти в файле developer documentation for the TC55, это просто настроить устройство, чтобы он отправил Intent со штрих-кодом в ваше приложение.

Эта конфигурация может быть экспортирована и повторно использована на другом устройстве. другой вариант заключается в том, чтобы ваше приложение настраивало конфигурацию программно, используя TC55's Profile API. Таким образом, вы можете точно настроить декодер штрих-кода для вашего прецедента.

Использование DataCapture Intents намного чище, используя симуляцию клавиатуры.

1

Вы пытались переопределить метод onKeyDown?

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    Log.d("MyApp", "key downed : " + keyCode); 
    if (keyCode == KeyEvent.KEYCODE_SCANNER /* HERE AN OBSVIOUSLY FALSE CONSTANT*/) { 

     // perform your desired action here 

     // return 'true' to prevent further propagation of the key event 
     return true; 
    } 

    // let the system handle all other key events 
    return super.onKeyDown(keyCode, event); 
} 

теперь вы просто должны отслеживать и найти правильный код ключа в этом списке: http://developer.android.com/reference/android/view/KeyEvent.html

увидеть этот ответ для получения более подробной информации: https://stackoverflow.com/a/19215087/1802663

Смежные вопросы