13

とにかくそのURIからSpotifyトラックを開始することはありますか?

私は次のアプローチを試しましたが、どれもうまくいきません。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);

ありがとう

4

3 に答える 3

16

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);
于 2012-10-03T15:39:31.687 に答える
2

First one is for old Spotify version. For new versions you can use the second.

In this way it will first try with old version, if it fails with an exception it try with the second one :)

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);
            }
于 2012-10-02T21:22:45.810 に答える
0

SpotifyアプリでArtistのプレイリストを取得した場合。あなたは意図に従うことを始める必要があります。Spotifyの名前やアクティビティをパッケージ化する必要はありません。

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("spotify:artist:" + "ARTIST SPOTIFY LINK"));
                startActivity(intent);
于 2015-06-09T19:35:34.383 に答える