2017-04-12 1 views
0

Ich habe diese Funktion von developer.android, aber es kann nicht alle Lieder finden, nur wenige. Bitte gib mir einen Hinweis.MediaStore - Funktion kann nicht alle Lieder finden

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

Werfen Sie einen Blick auf eine alte Frage von mir, könnten Sie helfen http://stackoverflow.com/questions/32703442/populate- listview-with-mp3-files-found-local – Phil3992

+0

Es ist ein guter Weg, Lieder zu finden, aber langsamer als ich will. Aber danke für die Antwort – ufo13131

+0

Sie fragen nicht nach Spalten in Ihrer Abfrage. Siehe unten – Theo

Antwort

0

Ich benutze die alle Titel erhalten folgende:

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

Danke, es ist Arbeit – ufo13131

Verwandte Themen