//静态注册
<receiver android:name=".receiver.MyMediaButtonReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MEDIA_BUTTON" /> </intent-filter> </receiver>
//接收广播
public class MyMediaButtonReceiver extends BroadcastReceiver { private static final String TAG = "MyMediaButtonReceiver"; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON)) { KeyEvent keyEvent = (KeyEvent) intent.getExtras().get( Intent.EXTRA_KEY_EVENT); Log.e(TAG, "keyEvent==" +keyEvent); switch (keyEvent.getKeyCode()) { case KeyEvent.KEYCODE_HEADSETHOOK: Toast.makeText(context, "hook",Toast.LENGTH_SHORT).show(); break; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: Toast.makeText(context, "PLAY_PAUSE",Toast.LENGTH_SHORT).show(); break; case KeyEvent.KEYCODE_MEDIA_PLAY: MyApp.showToast("PLAY"); Log.d(TAG, "KEYCODE_MEDIA_PLAY!"); MediaButtonBean mediaButtonBean=new MediaButtonBean(); mediaButtonBean.setType(MediaButtonBean.PLAY); EventBus.getDefault().post(mediaButtonBean); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: MyApp.showToast("PAUSE"); Log.d(TAG, "KEYCODE_MEDIA_PAUSE!"); MediaButtonBean mediaButtonBean1=new MediaButtonBean(); mediaButtonBean1.setType(MediaButtonBean.PAUSE); EventBus.getDefault().post(mediaButtonBean1); break; case KeyEvent.KEYCODE_MEDIA_STOP: Toast.makeText(context, "STOP",Toast.LENGTH_SHORT).show(); break; case KeyEvent.KEYCODE_MEDIA_NEXT: Toast.makeText(context, "NEXT",Toast.LENGTH_SHORT).show(); break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: Toast.makeText(context, "PREVIOUS",Toast.LENGTH_SHORT).show(); break; } } } }