Quiero consultar a los miembros de una lista de reproducción determinada. Tengo la id correcta de la lista de reproducción y quiero usar una managedQuery() para ver los miembros de la lista de reproducción en cuestión.¿A qué se refiere el argumento String 'volumeName' de MediaStore.Audio.Playlists.Members.getContentUri?
Lo que tengo es la siguiente:
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é lo que el argumento de volumen tiene que ser. He intentado esto: MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI.toString()
para el argumento "volumen".
Eso me da de nuevo un contenido válido URI que se parece a:
content://media/external/audio/playlists/2/members
Sin embargo, mi cursor vuelve nula. Probablemente estoy fuera de la base, sé que lo que quiero hacer es muy simple.
He reducido las cosas - Creo que "externo" es el argumento que estoy buscando. Me imagino que es porque puedo usar cualquier cadena falsa y obtener el mismo Cursor nulo, pero con el URI externo parece correcto (como arriba, parece que pegué la versión desde cuando usé "externo"). También con "externo", obtengo un comportamiento diferente. Obtengo una NullPointerException cuando llamo a ManageQuery, con un rastro de pila muy poco útil. en android.content.ContentResolver.query (ContentResolver.java:149) en android.app.Activity.managedQuery (Activity.java:1499) – Brett