Receber cliques doas botoes de mídia em um BroadcastReceiver

Estou desenvolvendo um musicPlayer para API 21+. Já integrei o MediaSession, componentes para verificação do foco de audio e etc… mas estou com um problema ao receber eventos de clique. Se meu app é o único player no telefone, funciona perfeitamente mas quando uso o spotify junto, ele sempre intercepta os eventos mesmo que meu app seja aberto dps dele , ele ainda interecepta os eventos e se eu fechar ele e deixar meu app aberto e clicar no botão do fone ele abre de novo… alguem sabe como resolver?

trecho do manifest onde registro o receiver

    <receiver android:name=".mediaplayer.MyReceiver">
        <intent-filter android:priority="1000">
            <action android:name="android.intent.action.MEDIA_BUTTON" />
            <action android:name="android.intent.action.USER_PRESENT" /> <!-- screen unlocked -->
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.MEDIA_MOUNTED" />
        </intent-filter>
    </receiver>

MyReceiver.java

public class MyReceiver extends BroadcastReceiver {
private Intent mIntent;
private Context mContext;

@Override
public void onReceive(Context context, Intent intent) {

    mIntent = intent;
    mContext = context;

    if (Objects.equals(intent.getAction(), Intent.ACTION_MEDIA_BUTTON)) {

        handleMediaButton();

    } else if (Objects.equals(intent.getAction(), Intent.ACTION_BOOT_COMPLETED)) {

        handleBootCompleted();
        handleUserPresent();

    } else if (Objects.equals(intent.getAction(), Intent.ACTION_USER_PRESENT)) {

        handleUserPresent();


    } else if (Objects.equals(intent.getAction(), Intent.ACTION_HEADSET_PLUG)) {
        verifyHeadsetPlugged();
    }

}

private void handleUserPresent() {
    MyApp.binder.getApplication().registerReceiver(this,
            new IntentFilter(Intent.ACTION_HEADSET_PLUG));
}

private void verifyHeadsetPlugged() {
    IntentFilter iFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
    Intent iStatus = mContext.registerReceiver(null, iFilter);
    if (iStatus == null) return;
    boolean isConnected = iStatus.getIntExtra("state", 0) == 1;
    if (isConnected) Toast.makeText(mContext, "Headset plugado!", Toast.LENGTH_SHORT).show();
    else Toast.makeText(mContext, "Headset desplugado", Toast.LENGTH_SHORT).show();

    if (isConnected && MusicService.binder == null) {
        mContext.startService(new Intent(mContext, MusicService.class));
    }
}

private void handleBootCompleted() {
}

private void handleMediaButton() {


    KeyEvent mEvent = mIntent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);

    MusicService.BindService binder = MusicService.binder;
    MusicService musicService = null;
    if (binder != null) {
        musicService = binder.getService();
    }


    if (mEvent.getKeyCode() == MusicService.KILL_APP_IF_DISMISS_NOTIFICATION) {
        if (musicService != null) {
            musicService.stopSelf();
        }

    } else if (musicService == null) {

        Log.d("MyReceiver", "handleMediaButton: iniciando serviço apartir do botao de media");
        mContext.startService(new Intent(mContext, MusicService.class));
        LocalBroadcastManager.getInstance(MyApp.binder.getApplication()).registerReceiver(new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                // serviço iniciado!
                LocalBroadcastManager.getInstance(MyApp.binder.getApplication()).unregisterReceiver(this);
                Log.d("MyReceiver", "onReceive: passando evento para o serviço");
                MusicService.binder.getPlayer().toogle();
            }
        }, new IntentFilter(MainActivity.SERVICE_OK));

    } else {
          /* analiza o o evento na intent e chama o callback na MyMediaSession
        se foi um botão de midia clicado que disparou este broadcastReceiver*/
        MusicService.binder.getService().handleMediButton(mIntent);
    }

    //  Log.d("MyReceiver", "onReceive: new command received " + mIntent.getAction() + " : " + mEvent.getKeyCode());

}

}

Já tenho definidos os callbacks no mediaSession para manusear os eventos de midia e não creio que estaja ai o problema. Eu não entendo por que quando meu app esta aberto, na frente e reproduzindo, o android não entrega os eventos pra ele mas sim para outro app.