Смена громкости?

Есть ли способ прослушать изменения громкости с помощью службы Android и реагировать на это?

Btw: Как музыкальное приложение Google позволяет пользователю контролировать объем мультимедиа, даже когда музыка воспроизводится в фоновом режиме?

Ответ 1

Отъезд registerMediaButtonEventReceiver(ComponentName broadcastReceiver);

Определите 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()