2015-12-15 5 views
0

Я использовал этот код, чтобы получить всю музыку в MediaStore, но не только музыку, в моем списке есть вся музыка в моем устройстве и звук приложения, например, «facebook» или «skype». Как этого избежать?Как перечислить всю музыку в MediaStore без песен приложения

public void getSongList(){ 
    //query external audio 
    ContentResolver musicResolver = getContentResolver(); 
    Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    Toast.makeText(PlayListActivity.this, musicUri.getPath(), Toast.LENGTH_LONG).show(); 
    Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null); 
    //iterate over results if valid 
    if(musicCursor!=null && musicCursor.moveToFirst()){ 
     //get columns 
     int titleColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.TITLE); 
     int idColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media._ID); 
     int artistColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.ARTIST); 
     int albumColumn = musicCursor.getColumnIndex 
       (android.provider.MediaStore.Audio.Media.ALBUM_ID); 
     //add songs to list 
     Bitmap bmThumbnail; 
     do { 
      String path = musicCursor.getString(musicCursor.getColumnIndex(MediaStore.Audio.Media.DATA)); 
      long thisId = musicCursor.getLong(idColumn); 
      long thisAlbumId = musicCursor.getLong(albumColumn); 
      String thisTitle = musicCursor.getString(titleColumn); 
      String thisArtist = musicCursor.getString(artistColumn); 
      songList.add(new Song(thisId, thisAlbumId, thisTitle, thisArtist, path)); 
     } 
     while (musicCursor.moveToNext()); 
    } 
} 

ответ

1

Я не уверен в этом, но я сделал это следующим образом.

public void getSongList(){ 
//query external audio 
ContentResolver musicResolver = getContentResolver(); 
Uri musicUri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
Toast.makeText(PlayListActivity.this, musicUri.getPath(), Toast.LENGTH_LONG).show(); 
Cursor musicCursor = musicResolver.query(musicUri, null, null, null, null); 
//iterate over results if valid 
if(musicCursor!=null && musicCursor.moveToFirst()){ 
    //get columns 
    int titleColumn = musicCursor.getColumnIndex 
      (android.provider.MediaStore.Audio.Media.TITLE); 
    int idColumn = musicCursor.getColumnIndex 
      (android.provider.MediaStore.Audio.Media._ID); 
    int artistColumn = musicCursor.getColumnIndex 
      (android.provider.MediaStore.Audio.Media.ARTIST); 
    int albumColumn = musicCursor.getColumnIndex 
      (android.provider.MediaStore.Audio.Media.ALBUM_ID); 
    int songDuration = musicCursor.getColumnIndex(android.provider.MediaStore.Audio.Media.DUration); 
    //add songs to list 
    Bitmap bmThumbnail; 
    do { 
     String path = musicCursor.getString(musicCursor.getColumnIndex(MediaStore.Audio.Media.DATA)); 
     long thisId = musicCursor.getLong(idColumn); 
     long thisAlbumId = musicCursor.getLong(albumColumn); 
     String thisTitle = musicCursor.getString(titleColumn); 
     String thisArtist = musicCursor.getString(artistColumn); 
     int dur =  Integer.parseInt(musicCursor.getString(songDuration)); 
     if(dur>5000){ 
     songList.add(new Song(thisId, thisAlbumId, thisTitle, thisArtist, path));} 
     } 
     while (musicCursor.moveToNext()); 
    } 
} 

Другим способом может быть сделать это с каталогом, возможно?

+0

Я попробую, спасибо большое –