Is there any way to listen for volume changes with an Android service and react to that?
Btw: How does the Google music app allow the user to control the media volume even when the music is playing in the background?
Is there any way to listen for volume changes with an Android service and react to that?
Btw: How does the Google music app allow the user to control the media volume even when the music is playing in the background?
Check out registerMediaButtonEventReceiver(ComponentName broadcastReceiver);
Define a BroadcastReceiver
that handles ACTION_MEDIA_BUTTON
. The recieved intent
includes a single extra field, EXTRA_KEY_EVENT
, containing the key event that caused the broadcast. You can use this key event to get which key was pressed.
EDIT:
This is just a sample code. syntax errors may be there.
// 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 .......
}
}
Unregister the receiver in onPause()
or onStop()