【问题标题】:How does the android lockscreen get playing song?android锁屏如何播放歌曲?
【发布时间】:2013-01-26 11:42:33
【问题描述】:

最近发布了一个question 如何从音乐应用程序Spotify 获取当前播放的歌曲,响应似乎没有简单的方法来做到这一点。

至少在 4.0+ 中,Android 锁屏会显示当前歌曲,并且可以与几乎所有音乐播放器(包括 spotify)一起使用。所以我的问题是锁屏是如何获取这些信息的?

【问题讨论】:

    标签: android


    【解决方案1】:

    在 Android 4.0 和 4.1 上,您看到的锁屏部分称为“遥控器”。你可以call registerRemoteControlClient()给它提供信息。

    在 Android 4.2+ 上,欢迎您创建自己的具有锁屏功能的应用小部件。

    【讨论】:

    • 这应该被接受,因为这是锁屏获取当前播放歌曲的方式。
    【解决方案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

    【讨论】:

    • 你有例子吗?我可以在锁屏源代码中找到这个吗?
    • 我已经添加了您需要从意图中提取数据的代码。
    • 还添加了另一个链接,其中包含执行此操作的测试应用程序。不要忘记接受答案。
    • 正如你所说,这是由股票播放器发送的,我的问题是我不是试图从股票播放器那里获取这些信息,而是从一个名为 spotify 的播放器那里获取信息。你描述的这个方法对它不起作用,但它必须是其他方式,因为锁屏可以显示它。
    • 使用这个应用程序找出所有用于 spotify play.google.com/store/apps/details?id=lt.andro.broadcastlogger 的广播,并为该广播构建一个接收器。
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 2023-02-20
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多