2017-04-12 74 views
0

我有這個功能從developer.android但它找不到所有的歌曲,只有少數。請給我一些線索。MediaStore - 功能無法找到所有歌曲

public void getAllSongs() { 
    ContentResolver contentResolver = getContentResolver(); 
    Uri uri = android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    Cursor cursor = contentResolver.query(uri, null, null, null, null); 
    if (cursor == null) { 
     // query failed, handle error. 
    } else if (!cursor.moveToFirst()) { 
     // no media on the device 
    } else { 
     int titleColumn = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media.TITLE); 
     int idColumn = cursor.getColumnIndex(android.provider.MediaStore.Audio.Media._ID); 
     do { 
      long thisId = cursor.getLong(idColumn); 
      String thisTitle = cursor.getString(titleColumn); 
      songs.add(thisId + "||"+thisTitle);// ...process entry... 
     } while (cursor.moveToNext()); 
    } 
} 
+0

在我的一個老問題,看一看,可能會幫助你http://stackoverflow.com/questions/32703442/populate- listview-with-mp3-files-found-locally – Phil3992

+0

這是找到歌曲的好方法,但比我想要的要慢。但是,謝謝你的回答 – ufo13131

+0

你並沒有要求查詢中的任何列。見下面 – Theo

回答

0

我使用以下方法來獲取所有曲目:

private final String track_id = MediaStore.Audio.Media._ID; 
private final String track_no = MediaStore.Audio.Media.TRACK; 
private final String track_name = MediaStore.Audio.Media.TITLE; 
private final String artist = MediaStore.Audio.Media.ARTIST; 
private final String artist_id = MediaStore.Audio.Media.ARTIST_ID; 
private final String duration = MediaStore.Audio.Media.DURATION; 
private final String album = MediaStore.Audio.Media.ALBUM; 
private final String composer = MediaStore.Audio.Media.COMPOSER; 
private final String year = MediaStore.Audio.Media.YEAR; 
private final String path = MediaStore.Audio.Media.DATA; 
private final String date_added = MediaStore.Audio.Media.DATE_ADDED; 
private final Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 

    public Cursor getAllTracks(Context context) { 
    // gets all tracks 

    ContentResolver cr = context.getContentResolver(); 
    final String[] columns = {track_id ,track_no, artist, track_name, 
      album, duration, path, year, composer}; 
    return cr.query(uri, columns, null, null, null); 
} 
+0

感謝它的工作 – ufo13131