The event is triggered only when the screen is on. Another reasonable root permission is required.
Make the BroadcastReceiver Advanced Class
public class YourBoardcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.e("get something", "i dont know what!!"); String intentAction = intent.getAction(); KeyEvent event = null; if (Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) { event = (KeyEvent) intent .getParcelableExtra(Intent.EXTRA_KEY_EVENT); } if (event == null) { return; } int keycode = event.getKeyCode(); int action = event.getAction(); long eventtime = event.getEventTime(); if (keycode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE || keycode == KeyEvent.KEYCODE_HEADSETHOOK) { if (action == KeyEvent.ACTION_DOWN) {
And in your manifest:
<receiver android:name="YourBoardcastReceiver"> <intent-filter> <action android:name="android.intent.action.SCREEN_ON" /> </intent-filter> </receiver>
and call it that.
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); mRemoteControlResponder = new ComponentName(getPackageName(), YourBoardcastReceiver.class.getName());
XEENA source share