2011-10-05 100 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");

相關問題