В ожидании ответа на этот вопрос я сам нашел решение.
По сути, вам просто нужно переопределить метод onKeyDown () или onKeyUp () в связанном классе Activity, и не забудьте вернуть super.onKeyDown () или super.onKeyUp (), чтобы автоматический KeyEvent присутствовал как обычно .
Что касается моего случая, я пытаюсь использовать пользовательские функции только для кнопок вверх и вниз по каналу. Ниже приведен пример кода.
@Override
public boolean onKeyDown(int KeyCode, KeyEvent event){
boolean handled = false;
if(KeyCode == KeyEvent.KEYCODE_CHANNEL_DOWN){
Log.i("KeyEvent","Channel down button pressed");//for debugging, to be printed on logcat
handled=true;
//do something
}
else if(KeyCode == KeyEvent.KEYCODE_CHANNEL_UP){
Log.i("KeyEvent","Channel up button pressed");//for debugging, to be printed on logcat
handled=true;
//do something
}
if(handled){
return handled;
}
//return super.onKeyDown() to attend unattended KeyEvent
else{
return super.onKeyDown(KeyCode, event);
}
}
Документацию по классу KeyEvent, содержащую список доступных констант KEYCODE, можно найти здесь .