无论如何从它的URI启动Spotify Track?
我尝试过以下方法,但没有一种方法可行。当Spotify打开时,它总是落在播放列表页面,而不是轨道的播放器。
String spotifyTrackURI = "spotify:track:1cC9YJ8sQjC0T5H1fXMUT2";
Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("com.spotify.mobile.android.ui");
// I've tried with Intent#putExtra()..
launchIntent.putExtra( SearchManager.QUERY, spotifyTrackURI );
// or with setData
launchIntent.setData(Uri.parse(spotifyTrackURI))
context.startActivity(launchIntent);
由于
答案 0 :(得分:15)
在Freenode(irc)的#spotify频道找到答案。谢谢大家!
我把它放在这里供其他人知道:
// right click on a track in Spotify to get the URI, or use the Web API.
String uri = "spotify:track:<spotify uri>";
Intent launcher = new Intent( Intent.ACTION_VIEW, Uri.parse(uri) );
startActivity(launcher);
答案 1 :(得分:2)
第一个是针对旧的Spotify版本。 对于新版本,您可以使用第二个版本。
通过这种方式,它将首先尝试使用旧版本,如果失败,则尝试使用第二个版本:)
try {
final 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.putExtra(SearchManager.QUERY, artistName + " " + trackName );
context.startActivity(intent);
} catch ( ActivityNotFoundException e ) {
final 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.activity.MainActivity"));
intent.putExtra(SearchManager.QUERY, artistName + " " + trackName );
context.startActivity(intent);
}
答案 2 :(得分:0)
如果您在Spotify应用上获得Artist的播放列表。您需要开始遵循意图。您无需打包Spotify的名称或活动。
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("spotify:artist:" + "ARTIST SPOTIFY LINK"));
startActivity(intent);