Как обрабатывать нажатия hardware-кнопок на java в android

Добавляем этот сниппет в нашу 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
}

Leave a Reply

Your email address will not be published.