package org.freemp.droid.player; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.view.KeyEvent; /** * Created by recoilme on 21/01/14. */ public class RcvMediaControl extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(Intent.ACTION_MEDIA_BUTTON)) { KeyEvent event = (KeyEvent) intent .getParcelableExtra(Intent.EXTRA_KEY_EVENT); if (event == null) { return; } if (event.getAction() != KeyEvent.ACTION_DOWN) { return; } switch (event.getKeyCode()) { case KeyEvent.KEYCODE_MEDIA_STOP: case KeyEvent.KEYCODE_HEADSETHOOK: case KeyEvent.KEYCODE_MEDIA_PLAY: sendMessage(context, "play"); break; case KeyEvent.KEYCODE_MEDIA_PAUSE: sendMessage(context, "play"); break; case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: sendMessage(context, "play"); break; case KeyEvent.KEYCODE_MEDIA_NEXT: sendMessage(context, "next"); break; case KeyEvent.KEYCODE_MEDIA_PREVIOUS: sendMessage(context, "prev"); break; case KeyEvent.KEYCODE_VOLUME_UP: sendMessage(context, "voup"); break; case KeyEvent.KEYCODE_VOLUME_DOWN: sendMessage(context, "vodn"); break; } } } void sendMessage(Context context, String msg) { Intent sendIntent = null; PendingIntent pendingIntent = null; sendIntent = new Intent(msg); sendIntent.setComponent(new ComponentName(context, ServicePlayer.class)); pendingIntent = PendingIntent.getService(context, 0, sendIntent, 0); try { pendingIntent.send(); } catch (PendingIntent.CanceledException e) { e.printStackTrace(); } } }