Android: различают экранную клавишу и физическую клавиатуру - PullRequest
3 голосов
/ 19 февраля 2012

Кто-нибудь знает, есть ли способ определить, была ли нажата клавиша back на экране или на физической клавиатуре?У нас есть проблема с ASUS Transformer Prime, где расположена клавиша android back , где ESC должна быть на физической клавиатуре, и люди ожидают, что она будет работать как ESC .

1 Ответ

3 голосов
/ 20 февраля 2012

Оказывается, у событий есть метод getSource().

if (((event.getSource() & InputDevice.SOURCE_KEYBOARD) != 0) && event.getDeviceId() > 0)

или

if (event.getDeviceId() > 0 && event.getSource() == InputDevice.SOURCE_KEYBOARD)

Первая версия этого условия от Android API. (event.getSource() & InputDevice.SOURCE_KEYBOARD) != 0) часть.

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

...