TODAY : / TOTAL :

[Android] 디바이스내 모든 MP3 경로 가져오기

  • Share this:
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public String[] GetAllMp3Path() {
 
    // MP3 경로를 가질 문자열 배열.
    String[] resultPath = null;
 
    // 외장 메모리 접근 권한을 가지고 있는지 확인. ( Marshmallow 이상 ) // mAcitivity == Main Activity
    if(ContextCompat.checkSelfPermission(mActivity,Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
 
        String selectionMimeType = MediaStore.Files.FileColumns.MIME_TYPE + "=?";
        // 찾고자하는 파일 확장자명.
        String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension("mp3");
 
        String[] selectionArgsMp3 = new String[]{ mimeType };
 
        Cursor c = getContentResolver().query(
                MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
                new String[]{MediaStore.Audio.Media.DATA}, selectionMimeType, selectionArgsMp3, null);
 
        if (c.getCount() == 0)
            return null;
 
        resultPath = new String[c.getCount()];
        while (c.moveToNext()) {
            // 경로 데이터 셋팅.
            resultPath[c.getPosition()] = c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
            Log.i(TAG, resultPath[c.getPosition()]);
        }
    }
 
    return resultPath;
}
cs


* 디바이스 내 모든 MP3에 대한 경로를 가져옵니다. ( 내장 외장 모두 포함 )

안드로이드 M 이상에서 사용자 권한 획득 여부 체크후 진행.
권한 미획득시 획득 재요청 OR 강제 종료 기능 추가 구현은 별도 필요.

반응형

SEARCH

태그로 찾아보기