How can I detect if a buton, on a pair of headphones, was pressed while running an Android app? Music applications use to this button to stop, play, pause music, etc.
D
Use the ACTION_MEDIA_BUTTON
and ACTION_AUDIO_BECOMING_NOISY
. Refer this doc: Developer Android
It's the ACTION_MEDIA_BUTTON intent.
There's a simpler way which doesn't require any BroadcastReceiver to be registered if you only want to listen for headset button callbacks while your app (particular activity) is running, simply override Activity onKeyDown method:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HEADSETHOOK){
//handle click
return true;
}
return super.onKeyDown(keyCode, event);
}