반응형
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 강제 종료 기능 추가 구현은 별도 필요.
반응형