Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android MediaSessionCompat设置活动不工作_Android_Android 5.0 Lollipop - Fatal编程技术网

Android MediaSessionCompat设置活动不工作

Android MediaSessionCompat设置活动不工作,android,android-5.0-lollipop,Android,Android 5.0 Lollipop,我已经在我的Android项目中设置了MediaSessionCompat对象(替换我正在使用的RemoteControlClient)。但是,无论我做什么,当我调用setActive时,MediaSessionCompat永远不会被激活(即isActive()之后返回false)。我的代码中也没有抛出异常 这是我的密码: mMediaSession = new MediaSessionCompat(m_currentContext, MEDIA_SESSION_TAG); mMediaSess

我已经在我的Android项目中设置了MediaSessionCompat对象(替换我正在使用的RemoteControlClient)。但是,无论我做什么,当我调用setActive时,MediaSessionCompat永远不会被激活(即isActive()之后返回false)。我的代码中也没有抛出异常

这是我的密码:

mMediaSession = new MediaSessionCompat(m_currentContext, MEDIA_SESSION_TAG);
mMediaSession.setCallback(new RemixMediaSessionCallback());
mMediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS);
mMediaSession.setPlaybackToLocal(AudioManager.STREAM_MUSIC);
mMediaSession.setActive(true);

有人知道我的代码中可能缺少什么吗?

我想我也有同样的问题。我调用setActive,但是按下的媒体按钮都没有被处理(),我查看了MediaSessionCompat源代码,发现除了棒棒糖(它基本上只调用MediaSession)之外,还没有其他可用的实现。所以基本上,函数都是不做任何事情的存根。调用setActive只会将内部“isActive”标志设置为false。如果MediaSessionCompat在线文档指出了这一点,那就太好了。所以我要做的就是保留我的RemoteControlClient代码,用于棒棒糖前的设备。对于棒棒糖,我实现了MediaSessionCompat。是的,这一行为实际上得到了Android DevRel的确认。然而,在使用MediaSessionCompat时,您是否真的使用了媒体按钮来响应棒棒糖上的事件?我这里也有同样的问题。我使用AudioManager.registerDiaButtoneVentreceiver来接收耳机的点击,但这在棒棒糖上已经不起作用了。因此,我开始更新我的代码,在API级别<21的情况下使用AudioManager,在API级别21或更高的情况下使用MediaSession,但直到现在都没有成功。Dan,你是如何做到这一点的?你是否试着遵循这里的建议: