【发布时间】: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 应用程序交互吗?我正在尝试做一些事情,比如告诉我的应用程序正在播放什么歌曲,但我很难过。我想也许既然你得到了这个工作,你可能会有一些想法。