2015-05-07 4 views
1

Я пытаюсь обработать длинное событие пресса на панели навигации (программные клавиши) для выполнения действия внутри моей деятельности. Мой телефон работает под управлением Android 4.4.4.Как обращаться с длинным нажатием на кнопку меню Android Navigation Bar?

Я попытался переопределить onKeyDown() и onKeyLongPress(), но ни один из этих обработчиков не получил это событие.

Я не нашел примера этого. Можно ли и как?

+0

AFAIK это невозможно, так как эти кнопки не являются частью вашего приложения (так же, как обнаружение «домашнего» нажатия невозможно). – shkschneider

+0

Спасибо! Это расстраивает. По-видимому, можно использовать кнопку «Назад»: http://stackoverflow.com/questions/8956587/android-code-to-handle-return-button-of-the-softkey-or-return-button-which-is-o –

ответ

1

AFAIK невозможно, , так как эти кнопки не являются частью вашего приложения (так же, как обнаружение «домашнего» нажатия невозможно).

Да, кнопка «Назад» имеет обратный вызов API, Activity.onBackPressed(), но для других кнопок, которые обрабатываются только системой/пусковой установкой, нет API.

Так что я боюсь, что вы не можете достичь того, что вы просили. (К сожалению, если хотите, но это по дизайну, и я уверен, что вы можете понять, почему).

+0

Спасибо! Я просто блуждаю по вещам, связанным с этим вопросом. На некоторых устройствах Android физическая кнопка «меню» используется для отображения приложения для запуска и иногда открывает меню при длительном нажатии на какое-либо приложение. Я блуждаю, как это делается, и если он ведет себя одинаково с мягкими клавишами? –