2013-03-04 3 views
1

managedQuery()를 사용하여 android의 특정 폴더에서 모든 오디오 파일을 가져 오는 방법. 커서 결과를 필터링하기 위해 managedQuery()에서 where 절이되어야하는 것을 의미합니다.폴더의 모든 오디오 파일 가져 오기

코드는 다음과 같습니다

String[] proj = { MediaStore.Audio.Media._ID, MediaStore.Audio.Media.DATA, MediaStore.Audio.Media.DISPLAY_NAME, MediaStore.Audio.Media.DURATION }; 
Cursor cursor = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,proj, /*where clause here*/, null, null); 

답변

1

나는 그것이 위의 코드

public class ReadAllFilesFromPathActivity extends Activity { 
private List<String> myList; 
File file; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.main); 
ListView listView = (ListView) findViewById(R.id.mylist); 
myList = new ArrayList<String>(); 

File directory = Environment.getExternalStorageDirectory(); 
file = new File(directory + "/Test"); 
File list[] = file.listFiles(); 

for(int i=0; i< list.length; i++) 
{ 
    if(checkFileExtension(list[i].getName()) 
    { 
     myList.add(list[i].getName()); 
    } 
} 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
     android.R.layout.simple_list_item_1, android.R.id.text1, myList); 
listView.setAdapter(adapter); //Set all the file in the list. 
} 
} 

에서 미디어 파일인지 여부를 확인하고 확장을 확인하기 위해 다음과 같은 방법을 추가 할 파일의 확장자를 확인을하고 싶습니다. 확장! 그것은 조금 더 코드

public enum SupportedFileFormat 
{ 
    _3GP("3gp"), 
    MP4("mp4"), 
    M4A("m4a"), 
    AAC("aac"), 
    TS("ts"), 
    FLAC("flac"), 
    MP3("mp3"), 
    MID("mid"), 
    XMF("xmf"), 
    MXMF("mxmf"), 
    RTTTL("rtttl"), 
    RTX("rtx"), 
    OTA("ota"), 
    IMY("imy"), 
    OGG("ogg"), 
    MKV("mkv"), 
    WAV("wav"); 

    private String filesuffix; 

    SupportedFileFormat(String filesuffix) { 
     this.filesuffix = filesuffix; 
    } 

    public String getFilesuffix() { 
     return filesuffix; 
    } 
} 

(당신은 또한 당신의 자신을 추가 할 수 있습니다)하지만 당신에게

+0

나를 위해 그 일을 thnks ,,, 투표 .. –

4

IS_MUSIC 도움이 될 수 있습니다 열거에서 지원 확장

private boolean checkExtension(String fileName) { 
    String ext = getFileExtension(fileName); 
    if (ext == null) return false; 
    try { 
     if (SupportedFileFormat.valueOf(ext.toUpperCase()) != null) { 
      return true; 
     } 
    } catch(IllegalArgumentException e) { 
     return false;  
    } 
    return false; 
} 

public String getFileExtension(String fileName) { 
    int i = fileName.lastIndexOf('.'); 
    if (i > 0) { 
     return fileName.substring(i+1); 
    } else 
     return null; 
} 

및 열거 형을 추가 = 0된다 AND LIKE '/ dir/%':

이렇게하면 managedQuery 결과가 .../SomeArtist/dir로 제한됩니다.

관련 문제