Определите BroadcastReceiver, который обрабатывает ACTION_MEDIA_BUTTON. Полученный intent включает в себя одно дополнительное поле EXTRA_KEY_EVENT, содержащее ключевое событие, вызвавшее трансляцию. Вы можете использовать это ключевое событие, чтобы получить, какая клавиша была нажата.
EDIT:
Это всего лишь пример кода. могут быть синтаксические ошибки.
// in onCreate of activity
registerMediaButtonEventReceiver(mediaReceiver );
// later somewhere in activity.
MediaButton_Receiver mediaReceiver = new MediaButton_Receiver();
class MediaButton_Receiver implements BroadcastReceiver {
void onReceive(Intent intent) {
KeyEvent ke = (KeyEvent)intent.getExtra(Intent.EXTRA_KEY_EVENT);
if (ke .getKeyCode() == KeyEvent.KEYCODE_VOLUME_DOWN) {
}
// Similarly other key codes .......
}
}
Отмените регистрацию получателя в onPause() или onStop()