现在正在播放的意图过滤器的Spotify操作是什么?

Joh*_*k13 5 android spotify

短版本
Spotify Android应用程序在最近的版本中引入了"设备广播状态"开关,我希望在我的应用程序中接收这些广播.可以使用哪些广播以及如何配置BroadcastReceiver?

漫长的漫游版本
我正在将一个正在播放的功能集成到我的Android应用程序中,并让它与大多数主要音频媒体播放器合作.我想把它挂钩到Spotify中,这也是我主要用来播放音乐的东西.

我看到了其他一些关于实现这一目标的Stack Overflow帖子(如何知道spotify在外部Android应用程序中扮演什么角色?例如,拦截/获取数据发送到Android上的Spotify Widget)我还使用了adb shell dumpsys activity broadcasts命令用于识别我认为是我感兴趣的两个动作

com.spotify.mobile.android.playbackstatechangedcom.spotify.mobile.android.metadatachanged

我在Spotify应用程序本身内使用了设备广播状态切换,我很高兴切换de /激活这些广播事件.

我遇到的问题是消息似乎只是偶尔发送.当你可能期望它们(播放,暂停,下一个,前一个)时,我会收到playstatechanged事件,但它们不包含任何与当前曲目相关的信息.metadatachanged事件很少发生,没有明显的模式.结合这使得很难(阅读,不可能)知道当前正在播放哪首曲目(如果有的话).在一个好的会话中,事情可以持续数小时,每当新歌开始时触发metadatachanged事件,在其他时候,我可能只在整个会话期间获得一个事件.

我注意到可以通过打开/关闭WiFi来触发一系列事件,并且(可能)有趣的是,如果我听到已加星标的播放列表,那么我会得到明显更明智的结果.

其他一些帖子建议我应该能够使用标准的Android操作com.android.music.playbackcomplete,com.android.music.playstatechanged和com.android.music.metachanged,但我的Spotify应用程序版本似乎没有触发这些(我用它们与标准媒体播放器集成).

我知道这是Spotify应用程序中的一个新功能,但尚未记录,但有没有人在将此功能集成到他们的应用程序中有任何成功?如果是这样,您可以共享BroadcastReceiver的配置.或者,如果还有其他更好的方法,我也很乐意听到.

我使用的Spotify应用程序的版本是0.7.4.606.

小智 -4

我意识到,Spotify 不会为下载的曲目触发 com.android.music.metachanged。它仅针对下载的播放列表中的第一首曲目触发它,而不是仅触发 com.spotify.mobile.android.queuechanged,除了 sendTime 之外没有任何信息...

这是 Spotify 的错误吗?

  • 如果您需要询问某些问题或有疑问,可以在评论或新问题中提问。这不是问题的答案。 (3认同)