2010-04-13 15 views
10

Belirli bir oynatma listesinin üyelerini sorgulamak istiyorum. Doğru oynatma listesi kimliğim var ve söz konusu oynatma listesi üyelerine bakmak için bir manageQuery() kullanmak istiyorum.MediaStore.Audio.Playlists.Members.getContentUri'nin 'volumeName' dizesi nedir?

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); 

ben hacim argüman olması gerekiyor bilmiyorum:

Ne var budur. Bunu denedim: "volume" argümanı için MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI.toString().

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

Ancak, benim imleç geri boş gelir: gibi, geçerli bir içerik URI beni geri verir

. Muhtemelen üssün dışındayım - ne yapmak istediğimin çok basit olduğunu biliyorum. "Harici"

+0

Bazı şeyleri daralttım - "dışsal" aradığım argüman olduğuna inanıyorum. Ben herhangi bir sahte dize kullanabileceğimi ve aynı boş İmleç'i kullanabildiğimden, ancak URI'nin dış görünümü ile doğru olduğunu gösterdiğimi (yukarıdaki gibi, "harici" kullandığım zamandan beri yapıştırılmış gibi görünüyor). Ayrıca "harici" ile farklı bir davranış alıyorum. Yönetilen sorgulama sırasında çok yardımcı olmayan bir yığın izlemesiyle NullPointerException alıyorum. Android.content.ContentResolver.query adresinden (ContentResolver.java:149) , android.app.Activity.managedQuery (Activity.java:1499) – Brett

cevap

8

Dize Bu etkinlikte bir Android'de şarkıları yazdıran MediaStore.Audio.Playlists.Members.getContentUri(volume, playlistId)

içinde hacim ve oynatma listeleri ve bunların içerikleri olarak çalışmaktadır.

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(); 
    } 
} 
+9

Soruyu gerçekten yanıtlamıyor. Hacim nedir? "Dışsal" yanı sıra olası değerleri nelerdir? Http://developer.android.com/guide/topics/data/data-storage.html dosyasında kullanılan "harici" ile aynı anlama gelen "harici" nedir? Vb – Yang

+0

Teşekkürler, tam olarak aradığım şey. – Gaurav