2011-10-05 99 views
4

我正试图想像Shazam这样的应用程序能够启动Spotify来播放特定的歌曲。 SO上的另一个问题提出了类似String spotifyUri = "spotify:user:username"的意图,然后将其解析为Uri,而不是搜索刚刚启动spotify的用户。我怎样才能让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")); 

现在我怎么告诉它来搜索特定的歌曲?

+0

嗨,我试图做类似的事情,我想你的代码,但我在INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH得到一个错误,与第二行明确。我想知道你是否有完整的代码? – Peter

+0

@Peter,请在下面的答案中查看我的代码。此外,您可能会因为针对Android API 8或更低版本构建而出现错误。 INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH自API级别9开始添加。 – LuxuryMode

+1

哦,必须是我在API 8上。非常感谢,我从来没有想过这一点。我知道这是脱离主题,但你是否可以做任何其他事情,如与Spotify应用程序交互?我正在尝试做一些事情,比如告诉我的应用正在播放哪首歌曲,而且我很难。我想也许既然你有这个工作,你可能有一些想法。 – Peter

回答

4

好吧,很明显,你需要使用一个棒SearchManager.Query作为一个额外的。 This post点的那种。

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

相关问题