2012-04-02 6 views
17

Gibt es eine Möglichkeit, einen Musiktitel in der Google Music Player App über meine App abzuspielen? Ich versuche folgenden Code, aber Google Music Player öffnet nur die Suchergebnisse & spielt nicht wirklich das Lied.Probleme beim Abspielen eines Songs im Google Music Player

Intent intent = new Intent(); 
    intent.setAction(MediaStore.INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH); 
    intent.putExtra(SearchManager.QUERY, "It's my life"); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.setPackage("com.google.android.music"); 
    activity.startActivity(intent); 

Die Dokumentation für INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH sagt folgende - Eine Absicht, eine Suche nach Musik Medien durchzuführen und automatisch Inhalte aus dem Ergebnis, wenn möglich zu spielen.

Also, nach der Dokumentation sollte es in der Lage sein, das Lied zu spielen. Aber es öffnet nur die Suchergebnisse und spielt es nicht ab. Irgendwelche Ideen was mir hier fehlt?

Danke für jede Hilfe, die Sie anbieten können.

+0

Haben Sie Glück dabei? –

+0

Jede Nachricht wie "könnte Instant Mix nicht vorbereiten, bitte versuchen Sie es erneut" von Google Music? – Karioki

Antwort

0

Ich habe einen Weg gefunden, dies zu tun.

Intent intent = new Intent(); 
intent.setAction(android.content.Intent.ACTION_VIEW); 
File file = new File(YOUR_SONG_URI); 
intent.setDataAndType(Uri.fromFile(file), "audio/*"); 
startActivity(intent); 
+0

True, das funktioniert, wenn Sie den Pfad zu der Datei auf dem Gerät haben. Aber es wird nicht zum Beispiel für All-Inclusive-Musik funktionieren. –

0
Intent i; 
PackageManager manager = getPackageManager(); 
try { 
i = manager.getLaunchIntentForPackage("com.google.android.music"); 
if (i == null) 
    throw new PackageManager.NameNotFoundException(); 
i.addCategory(Intent.CATEGORY_LAUNCHER); 
startActivity(i); 
} catch (PackageManager.NameNotFoundException e) { 
} 
+0

Dies startet nur die Hauptaktivität der App richtig? –

2

Argh, dachte, es endlich durch einen Heap Dump des Play Music Prozess zu bekommen. Sie müssen

intent.putExtra("queryComplete", "It's my life"); 

und alles funktioniert hinzuzufügen. Der Wert muss mit dem Wert SearchManager.QUERY übereinstimmen.

Verwandte Themen