2010-03-02 6 views
0

Dans le lecteur de musique stock dans Android 2.1 (au moins), l'artiste, l'album et le nom de la piste en cours sont cliquables, ce qui affiche un menu contextuel "Recherche de NN avec: ", avec des liens vers des applications différentes.Intention de recherche de lecteur de musique native Android

MISE À JOUR

J'ai réussi à extraire les journaux de mon propre appareil, faire une recherche pour un artiste, et en sélectionnant Google Ecouter pour terminer l'action:

03-02 11:59:34.551 I/ActivityManager( 86): Displayed activity com.android.music/.MediaPlaybackActivity: 1758 ms (total 1953 ms) 
03-02 11:59:35.691 I/ActivityManager( 86): Starting activity: Intent { act=android.intent.action.CHOOSER cmp=android/com.android.internal.app.ChooserActivity (has extras) } 
03-02 11:59:36.781 I/ActivityManager( 86): Displayed activity android/com.android.internal.app.ChooserActivity: 1036 ms (total 1036 ms) 
03-02 11:59:38.191 I/ActivityManager( 86): Starting activity: Intent { act=android.intent.action.MEDIA_SEARCH flg=0x13000000 cmp=com.google.android.apps.listen/.SearchListActivity (has extras) } 
03-02 11:59:38.511 D/Listen ( 491): Request search results for http://lfe-alpo-gm.appspot.com/search?q=Finntroll 

Je vais certainement poursuivre moi-même, mais c'est assez nouveau pour moi. J'apprécierais l'aide ici. Est-ce que ce qui précède signifie que tant que je définis MEDIA_SEARCH intention comme point d'entrée pour une activité, cela apparaîtra dans la liste de sélection?

Répondre

4

D'accord, MEDIA_SEARCH était la bonne voie à suivre. Pour référence:

Ajout du filtre intention est suffisant pour rendre l'application apparaissent dans la liste de sélection dans le lecteur multimédia:

<action android:name="android.intent.action.MEDIA_SEARCH" /> 

Et puis l'action peut être reçue comme suit:

final Intent queryIntent = getIntent(); 
final String queryAction = queryIntent.getAction(); 

if (MediaStore.INTENT_ACTION_MEDIA_SEARCH.equals(queryAction)) { 
    String artist = queryIntent.getStringExtra(MediaStore.EXTRA_MEDIA_ARTIST); 
    ... 
} 
+0

Salut David, Merci pour le tuyau. Mais EXTRA_MEDIA_TITLE arrive à zéro. J'ai testé sur mon appareil (1.5) et Emulator (2.1). Toutefois; les autres extras vont bien. Avez-vous eu la chance d'obtenir le titre? –

+0

@Omer: Salut. Le fait que «EXTRA_MEDIA_TITLE» ait ou non une valeur dépend de la façon dont vous effectuez la recherche (et je suppose que la recherche de médias est implémentée dans votre lecteur de musique). Si vous faites un clic long sur le nom de l'album, vous allez chercher cet album. Si vous cliquez longuement sur le titre, vous chercherez le titre. Dans le premier cas, 'TITLE' sera nul. Vous pouvez également vérifier 'MediaStore.EXTRA_MEDIA_FOCUS' pour savoir ce qui a été recherché. –

+0

Salut David Hedlund, Si cela ne vous dérange pas s'il vous plaît donner un échantillon lié à la poste ci-dessus. – kiran

Questions connexes