Headphone button control Android 5.0 -
i writing program catches headphone button presses different things depending how long , how many times press it. going api level 21. android 5.0. can catch button press, when start mp3 player start catching button presses. how can prevent that? second question how resume paused mp3, , other program not program playing mp3.
audiosession = new mediasession(getapplicationcontext(), "tag11"); mscallback= new mediasession.callback() { @override public boolean onmediabuttonevent(final intent mediabuttonintent) { string intentaction = mediabuttonintent.getaction(); log.i("onmediabuttonevent", intentaction ); if (intent.action_media_button.equals(intentaction)) { keyevent event = mediabuttonintent.getparcelableextra(intent.extra_key_event); if (event != null) { if(toast!=null){ toast.cancel(); } toast = toast.maketext(getapplicationcontext(), "headsetbutton press", toast.length_short); toast.show(); } } return super.onmediabuttonevent(mediabuttonintent); } }; audiosession.setcallback(mscallback); playbackstate state = new playbackstate.builder() .setactions(playbackstate.action_play_pause) .setstate(playbackstate.state_playing, 0, 0, 0) .build(); audiosession.setplaybackstate(state); audiosession.setflags(mediasession.flag_handles_media_buttons | mediasession.flag_handles_transport_controls); audiosession.setactive(true);
in order listen media key events declare broadcast reciever in manifest file so
<receiver android:name=".remotecontrolreceiver"> <intent-filter> <action android:name="android.intent.action.media_button" /> </intent-filter> </receiver>
in remotecontrolreceiver
class extend broadcastreceiver
, extract key event , key code so
@override public void onreceive(context context, intent intent) { log.d(tag, "onreceive: "); if (intent.action_media_button.equals(intent.getaction())) { keyevent event = intent.getparcelableextra(intent.extra_key_event); int keycode = event.getkeycode(); } }
the basic button on every headset pause/play button
Comments
Post a Comment