¿Cuál es el argumento String 'nombreDeVolumen' de MediaStore.Audio.Playlists.Members.getContentUri que hace referencia a?

Estoy deseando consultar a los miembros de una lista de reproducción determinada. Tengo la identificación correcta de la lista de reproducción, y quiero usar un managedQuery () para ver los miembros de la lista de reproducción en cuestión.

Lo que tengo es esto:

private String [] columns = { MediaStore.Audio.Playlists.Members.PLAYLIST_ID, MediaStore.Audio.Playlists.Members.TITLE, }; Uri membersUri = MediaStore.Audio.Playlists.Members.getContentUri(volume, playlistId); Cursor tCursor = managedQuery(membersUri, columns, null, null, null); 

No sé cuál es el argumento del volumen. He intentado esto: MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI.toString() para el argumento "volumen".

Eso me devuelve un URI de contenido válido que se parece a:

 content://media/external/audio/playlists/2/members 

Sin embargo, mi cursor vuelve nulo. Probablemente estoy lejos de la base – sé lo que quiero hacer es muy simple.

La cadena "externa" funciona como el volumen en MediaStore.Audio.Playlists.Members.getContentUri(volume, playlistId)

Esta actividad imprime las canciones en un Android, las listas de reproducción y su contenido.

 import android.app.Activity; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.util.Log; public class PlaylistActivity extends Activity { private final String [] STAR= {"*"}; private final String TAG= "list"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.main); Log.i(TAG, "All the titles"); Uri allaudio_uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; Cursor ca= managedQuery(allaudio_uri, STAR, null,null,null); for(ca.moveToFirst(); !ca.isAfterLast(); ca.moveToNext()){ if(ca.isFirst()){ // print all the fields of the first song for(int k= 0; k<ca.getColumnCount(); k++) Log.i(TAG, " "+ca.getColumnName(k)+"="+ca.getString(k)); }else{ // but just the titles of the res Log.i(TAG, ca.getString(ca.getColumnIndex("title"))); } } Log.i(TAG, "--------------------------"); Log.i(TAG, "All the playlists"); Uri playlist_uri= MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI; Cursor cursor= managedQuery(playlist_uri, STAR, null,null,null); cursor.moveToFirst(); for(int r= 0; r<cursor.getCount(); r++, cursor.moveToNext()){ Log.i(TAG, "-----"); Log.i(TAG, "Playlist " + cursor.getString(cursor.getColumnIndex("name"))); for(int k= 0; k<cursor.getColumnCount(); k++) Log.i(TAG, cursor.getColumnName(k)+"="+cursor.getString(k)); // the members of this playlist int id= cursor.getInt(0); Uri membersUri = MediaStore.Audio.Playlists.Members.getContentUri("external", id); Cursor membersCursor = managedQuery(membersUri, STAR, null, null, null); membersCursor.moveToFirst(); for(int s= 0; s<membersCursor.getCount(); s++, membersCursor.moveToNext()) Log.i(TAG, " "+membersCursor.getString(membersCursor.getColumnIndex("title"))); membersCursor.close(); } cursor.close(); } } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.