1

I have this function from developer.android but it can't find all songs, only few. Please give me some clue.

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());
    }
}
ufo13131
  • 11
  • 2

1 Answers1

0

I use the following to get all tracks:

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);
}
Theo
  • 2,012
  • 1
  • 16
  • 29