Добавляем этот сниппет в нашу activity и наше приложение для android сможет обрабатывать нажатия hardware-кнопок так как мы того пожелаем. В данном примере используется обработчик для нажатия кнопки “вызова” (KeyEvent.KEYCODE_HEADSETHOOK) на handsfree гарнитуре.
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { super.onKeyUp(keyCode, event); if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK) { // ADD HERE YOUR CODE TO PROCESS PARTICULAR KEY-PRESS EVENT return true; //because you handle this event } return false; // allow to system handle it }
Если вы не знаете кода кнопки для которой хотите написать обработчик – переопределите функцию onKeyDown таким образом чтобы она выводила код нажатой кнопки и всегда возвращала false:
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { super.onKeyUp(keyCode, event); Log.i("KEY CODE ","PRESSED KEY - "+keyCode); return false; // allow to system handle it }
6 comments
Skip to comment form
With the bases loaded you struck us out with that asnewr!
Почти не надеюсь, что кто-то ответит в топике двухгодовалой давности, но все же…
Пробовал получать коды кнопок на Samsung Galaxy Ace. “Меню” или “назад” обрабатывается нормально, выдается их код. А вот центральная (не сенсорная кнопка) – никак не обрабатывается. И ее нажатие не перехватывается. Я бы хотел ее обработать, потому что если этого не сделать, то по ее нажатию моя игра ставится на паузу и остается висеть в памяти и жрать батарейку.
Author
А если минимальную апликуху запустить, которая только код кнопок выводит – то же самое?
Выглядит будто какая-то сторонняя активити нажатие проглатывает. В логкате событий по поводу нажатий отображаются?
Во избежания недоразумений, сразу скажу что я девятикласник, который вообще не шарит в программировании, и пока только учится, и может жестко тупить.
А теперь вопрос – если я знаю код кнопки, и вставлю его вместо KeyEvent.KEYCODE_HEADSETHOOK, это сработает ?
Author
да, конечно 🙂
Добрый день!
Выводит код кнопок телефона, но нажатия блютуз гарнитуры не видит, хотя громкость с нее регулируется.
Подскажите, как приложению увидеть блютуз – гарнитуру?