개발/Android

Android - SDCard(내부 저장소) 불러오기

스카이룬 2020. 7. 15. 11:55
반응형

최근 파일을 카카오톡 다운로드 파일을 불러올 일이 있어서 불러오는데 오류가 발생했다.

final String strFolderName = "/KakaoTalkDownload";
final String SD_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + strFolderName;
Log.e("SD_PATH", SD_PATH);
File directory = new File(SD_PATH);
final File[] files = directory.listFiles();
if (!directory.exists()) {
	Log.e("EXISTS", "경로없음");
} else {
	if (files != null) {
		for (File file : files){
			if (file.getName().contains("CT")) {
				log.d("FILE NAME", file.getName());
			}
		}
	}
}

일단 여기까지는 일반적인 구글링으로도 흔한 방식이다.

* 여기서 카카오톡 다운로드 폴더는 'KakaoTalkDownload'이다.

그런데 로그를 찍어보니 파일이 하나도 읽히지 않았다. Permission 체크는 TedPermission을 이용하여 처리하였다.

* Manifast에 아래 코드를 추가하여야 한다.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

구글을 수색해보아도 보이지 않아서 3시간이 지난 결과

Manifast 파일에 한 가지를 더 추가했다.

<application android:requestLegacyExternalStorage="true">

이것을 한 줄 추가했더니 모든 파일이 읽어졌다.

반응형