Как сделать обработку нажатий русских клавиш на клавиатуре

Мне нужно, чтобы приложение реагировало на нажатия русских клавиш на клавиатуре без использования EditText (клавиатура в приложении открыта).

Пробовал методы onKeyDown() и onKeyUp(), но они реагируют только на нажатия английских клавиш


Ответы (2 шт):

Автор решения: Спицко Дмитрий

Вы не можете получать информацию о вводе из воздуха, система отдает их тому элементу, что сейчас в фокусе. Создайте на экране EditText, который будет невидим или находится за пределами видимости, программно повесьте на него фокус и перехватывайте нажатия в нем

→ Ссылка
Автор решения: Barmaley Red Star

Как следует из документации:

As soft input methods can use multiple and inventive ways of inputting text, there is no guarantee that any key press on a soft keyboard will generate a key event: this is left to the IME's discretion, and in fact sending such events is discouraged. You should never rely on receiving KeyEvents for any key on a soft input method.

Если перевести на понятный язык - это означает, что не гарантируется генерация KeyEvent на все события софт-клавиатуры.

Что делать тогда?

Ну например можно поставить TextWatcher на ваш EditText (его можно попробовать сделать скрытым и в фокусе)

→ Ссылка