Как перехватить жесткую клавишу, нажатую в сервисе? - PullRequest
2 голосов
/ 28 июля 2010

Можно ли как-то перехватить нажатие жесткой клавиши с помощью службы для запуска операции?

Другими словами: возможно ли обрабатывать KeyEvents в службе?

Ответы [ 2 ]

4 голосов
/ 29 июля 2010

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

По событию может быть обнаружено только событие кнопки CAMERA Intent.

ACTION_CAMERA_BUTTON транслируется при нажатии кнопки CAMERA и не перехватывается действием переднего плана: developer.android.com/reference/android/content/…

Это означает, что вы можете обнаружить нажатие, только если приложение на переднем плане не обрабатывает нажатие клавиши.

2 голосов
/ 01 июля 2011

Да. Вы можете захватить KeyEvents с помощью InputMethodService. У Hard-Keys есть свои собственные коды клавиш, как и у Soft-Keys.

Посмотрите на пример SoftKeypad, который сделал Google.

...