Pre API 21 Я использовал вызов, например audioManager.registerMediaButtonEventReceiver(receiver);
, для обработки событий мультимедийных кнопок, когда пользователь нажал кнопку на своей гарнитуре. По API 21 кажется, что следует использовать MediaSession
. Однако я не получаю никакого ответа.Управление медиа-кнопками в Android 5.0 Lollipop
final MediaSession session = new MediaSession(context, "TAG");
session.setCallback(new Callback() {
@Override
public boolean onMediaButtonEvent(final Intent mediaButtonIntent) {
Log.i("TAG", "GOT EVENT");
return super.onMediaButtonEvent(mediaButtonIntent);
}
});
session.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS |
MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);
session.setActive(true);
Над то, что я думаю, что должен работать, но не делает. Кто-нибудь знает, почему это не работает или как я должен зарегистрироваться?
Вы настроили сеанс активным? 'session.setActive (true)' –
См. пример кода. Последняя строка - 'session.setActive (true);' – tvkanters
У меня точно такая же проблема, о которой вы сообщали. Я также попытался использовать ваш фрагмент кода с MediaSessionCompat (из поддержки V4), но без успеха. Я продолжу свое расследование, и если я найду какое-то решение, я отправлю в качестве ответа здесь. – Luis