在 API 21 之前,我使用类似 audioManager.registerMediaButtonEventReceiver(receiver);
的调用来处理用户按下耳机按钮时的媒体按钮事件。从 API 21 开始,似乎应该使用 MediaSession
。然而,我完全没有得到任何响应。
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)
- Nikola Despotoskisession.setActive(true);
。 - tvkanters