短版本
Spotify Android应用程序在最近的版本中引入了"设备广播状态"开关,我希望在我的应用程序中接收这些广播.可以使用哪些广播以及如何配置BroadcastReceiver?
漫长的漫游版本
我正在将一个正在播放的功能集成到我的Android应用程序中,并让它与大多数主要音频媒体播放器合作.我想把它挂钩到Spotify中,这也是我主要用来播放音乐的东西.
我看到了其他一些关于实现这一目标的Stack Overflow帖子(如何知道spotify在外部Android应用程序中扮演什么角色?例如,拦截/获取数据发送到Android上的Spotify Widget)我还使用了adb shell dumpsys activity broadcasts命令用于识别我认为是我感兴趣的两个动作
com.spotify.mobile.android.playbackstatechanged 和 com.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 的错误吗?
| 归档时间: |
|
| 查看次数: |
2840 次 |
| 最近记录: |