【发布时间】:2014-12-15 09:14:31
【问题描述】:
在 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) -
请看代码示例。最后一行是
session.setActive(true); -
我遇到了与您报告的完全相同的问题。我还尝试将您的代码 sn-p 与 MediaSessionCompat(来自支持 V4)一起使用,但没有成功。我会继续调查,如果我找到一些解决方案,我会在这里发布答案。
标签: android android-5.0-lollipop