Слушатель изменения громкости? - PullRequest
13 голосов
/ 20 августа 2011

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

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

1 Ответ

12 голосов
/ 20 августа 2011

Проверить registerMediaButtonEventReceiver(ComponentName broadcastReceiver);

Определить BroadcastReceiver, который обрабатывает ACTION_MEDIA_BUTTON.Полученное значение intent включает одно дополнительное поле EXTRA_KEY_EVENT, содержащее ключевое событие, вызвавшее трансляцию.Вы можете использовать это событие, чтобы узнать, какая клавиша была нажата.


РЕДАКТИРОВАТЬ:
Это просто пример кода.там могут быть синтаксические ошибки.

// 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()

...