打算启动歌曲,在 Spotify 应用程序中搜索用户?

Posted

技术标签:

【中文标题】打算启动歌曲,在 Spotify 应用程序中搜索用户?【英文标题】:Intents to launch song, search for user in spotify app? 【发布时间】:2011-12-01 04:28:00 【问题描述】:

我试图弄清楚像 Shazam 这样的应用程序是如何能够启动 Spotify 来播放特定歌曲的。 SO上的另一个问题提出了类似String spotifyUri = "spotify:user:username"的意图,然后将其解析为Uri,而不是搜索刚刚启动spotify的用户。如何让 Spotify 播放曲目?

编辑

查看 Logcat,Shazam 似乎是这样做的:

Starting: Intent  act=android.media.action.MEDIA_PLAY_FROM_SEARCH cmp=com.spotify.mobile.android.ui/.Launcher (has extras)  from pid 9959

如何在我的代码中复制它?

编辑

好的,显然它是这样的:

Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.setAction(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH);
        intent.setComponent(new ComponentName("com.spotify.mobile.android.ui", "com.spotify.mobile.android.ui.Launcher"));

现在我如何告诉它搜索特定歌曲?

【问题讨论】:

嗨,我正在尝试做类似的事情,我尝试了您的代码,但第二行出现错误,特别是在 INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH 处。我想知道你是否有完整的代码? @Peter,请在下面的答案中查看我的代码。此外,您可能会收到错误消息,因为您是针对 Android API 8 或更低版本构建的。 INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH 从 API 级别 9 开始添加。 哦,那一定是我在 API 8 上。非常感谢,我从来没有想过这一点。我知道这是题外话,但你还能做任何其他事情,比如与 spotify 应用程序交互吗?我正在尝试做一些事情,比如告诉我的应用程序正在播放什么歌曲,但我很难过。我想也许既然你得到了这个工作,你可能会有一些想法。 【参考方案1】:

好吧,显然你需要使用一根棍子 SearchManager.Query 作为额外的。 This post 有点指向这一点。

所以,它是intent.putExtra(SearchManager.QUERY, "michael jackson smooth criminal");

【讨论】:

以上是关于打算启动歌曲,在 Spotify 应用程序中搜索用户?的主要内容,如果未能解决你的问题,请参考以下文章

返回空的特定搜索结果(Spotify API)

如何在 Spotify 上获取艺术家的所有歌曲?

有没有办法使用非高级帐户使用 Spotify API 搜索歌曲但不播放它们?

将歌曲添加到 Spotify 队列 Android 不会自动播放下一首歌曲

spotify api 获取用户的播放列表

Spotify iOS搜索功能[关闭]