【发布时间】:2013-01-26 11:42:33
【问题描述】:
最近发布了一个question 如何从音乐应用程序Spotify 获取当前播放的歌曲,响应似乎没有简单的方法来做到这一点。
至少在 4.0+ 中,Android 锁屏会显示当前歌曲,并且可以与几乎所有音乐播放器(包括 spotify)一起使用。所以我的问题是锁屏是如何获取这些信息的?
【问题讨论】:
标签: android
最近发布了一个question 如何从音乐应用程序Spotify 获取当前播放的歌曲,响应似乎没有简单的方法来做到这一点。
至少在 4.0+ 中,Android 锁屏会显示当前歌曲,并且可以与几乎所有音乐播放器(包括 spotify)一起使用。所以我的问题是锁屏是如何获取这些信息的?
【问题讨论】:
标签: android
在 Android 4.0 和 4.1 上,您看到的锁屏部分称为“遥控器”。你可以call registerRemoteControlClient()给它提供信息。
在 Android 4.2+ 上,欢迎您创建自己的具有锁屏功能的应用小部件。
【讨论】:
通过broadcast receiver,您可以创建广播接收器并在清单中为其定义过滤器。然后所有发送此广播的音乐应用程序将触发您的 onReceive 方法,以及从应用程序发送的信息。
编辑:
Intent intent = new Intent("com.android.music.playstatechanged");
intent.putExtra("playing", (mState & FLAG_PLAYING) != 0);
if (song != null) {
intent.putExtra("track", song.title);
intent.putExtra("album", song.album);
intent.putExtra("artist", song.artist);
intent.putExtra("songid", song.id);
intent.putExtra("albumid", song.albumId);
}
sendBroadcast(intent);
这是股票播放器中用于发送广播的代码,查看广播接收器可以弄清楚如何获取所需的数据。
您还需要找到适用于 spotify 的过滤器,AFIK 这个适用于 soptify。 “com.android.music.metachanged”或看这里http://pastebin.com/ukfPnZwg
【讨论】: