2011-03-14 4 views
2

예를 들어 내부 및 외부 저장소에서 모든 .mp3 파일 목록을 검색하려고합니다. 또한 참조 용으로 각 .mp3 파일의 경로 (String)를 갖고 싶습니다 (List에 저장 하시겠습니까?) 어떻게하면됩니까? 이것은 비교적 비싼 작업입니까? 그렇다면 스레드에 넣고 실행 중일 때 사용자에게 "로드 중"ProgressDialog을 표시 하시겠습니까?안드로이드 장치에 하나의 파일 유형을 모두 나열 하시겠습니까?

답변

6

아래 기능을 찾아보십시오. 그것은 외부 및 내부 메모리에 저장된 모든 mp3 파일을 얻을 것이다.

public void getAllSongs() { 

    Uri allsongsuri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; 
    String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0"; 

    cursor = managedQuery(allsongsuri, STAR, selection, null, null); 

    if (cursor != null) { 
     if (cursor.moveToFirst()) { 
      do { 
       song_name = cursor 
         .getString(cursor 
           .getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)); 
       int song_id = cursor.getInt(cursor 
         .getColumnIndex(MediaStore.Audio.Media._ID)); 

       String fullpath = cursor.getString(cursor 
         .getColumnIndex(MediaStore.Audio.Media.DATA)); 
       fullsongpath.add(fullpath); 

       album_name = cursor.getString(cursor 
         .getColumnIndex(MediaStore.Audio.Media.ALBUM)); 
       int album_id = cursor.getInt(cursor 
         .getColumnIndex(MediaStore.Audio.Media.ALBUM_ID)); 

       artist_name = cursor.getString(cursor 
         .getColumnIndex(MediaStore.Audio.Media.ARTIST)); 
       int artist_id = cursor.getInt(cursor 
         .getColumnIndex(MediaStore.Audio.Media.ARTIST_ID)); 


      } while (cursor.moveToNext()); 

     } 
     cursor.close(); 
     db.closeDatabase(); 
    } 
} 
관련 문제