Я совершенно новый для android, и я создаю музыкальный плеер. Я не был знаком с MediaSession, и теперь у меня есть функционал Music Player, но он не поддерживает реакцию на клики на наушники или приостановку входящих вызовов.Android MediaSession не реагирует на наушники
Это мой код:
ComponentName mediaButtonReceiver = new ComponentName(context, MusicPlayerNotificationReceiver.class);
final MediaSessionCompat mediaSession = new MediaSessionCompat(context, "Start MP", mediaButtonReceiver, null);
mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
LockerActivity.getInstance().runOnUiThread(new Runnable() {
@Override
public void run() {
mediaSession.setCallback(MusicPlayer.this);
}
});
mediaSession.setActive(true);
У меня также есть BroadcastReceiver
, который определен с этим действием
<action android:name="android.intent.action.MEDIA_BUTTON" />
Это все из моего кода ralated в MediaSession
. Итак, на данный момент я просто пытаюсь получить уведомление о действии от наушников. У меня есть точка останова на первой строке внутри onReceive()
, и я нажимаю кнопку в наушниках, и ничего не происходит. Если я долго нажимаю на кнопку, а андроид переходит в режим прослушивания для инструкций по написанию.
Что мне еще нужно?
Попробуйте создать явный широковещательный 'PendingIntent' для класса' MusicPlayerNotificationReceiver' и передать его в качестве четвертого параметра в конструкторе 'MediaSessionCompat'. –
@MikeM. Не работает. – SnapDragon
Вы уверены, что приемник правильно указан в манифесте; правильная орфография, правая папка и т. д.? –