При нажатии на гарнитуру необходимо вывести мое приложение на передний план для этого. Я использую метод registerMediaButtonEventReceiver(), он отлично работает для устройств Android ниже 5.1. Теперь этот метод устарел на уровне API 21. Я использую mediasession.setMediaButtonReciever(), чтобы получить высокий приоритет, но он не работает.
AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
ComponentName mediaComponent = new ComponentName(context.getPackageName(), HeadsetReceiver.class.getName());
mAudioManager.registerMediaButtonEventReceiver(mediaComponent);
mediaHandler.postDelayed(this, 1000L);
Я публикую это каждую секунду, чтобы получить приоритетное приложение. Я использую этот код в 5.1, но при нажатии кнопки мультимедиа запускается музыка. мое приложение не получает никакого события, чтобы вывести приложение на передний план. Заранее спасибо..
MediaSession mSession = new MediaSession(context,context.getPackageName());
Intent intent = new Intent(context, HeadsetReceiver.class);
PendingIntent pintent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
mSession.setMediaButtonReceiver(pintent);
mSession.setActive(true);
mediaHandler.postDelayed(this, 1000L);