4.3버전으로 개발된 앱을 4.4.버전의 최신폰에 적용하려는데
sd카드의 내용을 쓸 수 없는 문제가 생깁니다.
기존 코드는 system.getenv()를 이용해 "2차 저장소" 및 "외부저장소"에 대한
폴더위치를 가져와서 자료를 저장했습니다.
즉, sd카드가 있으면, 거기에 저장하고, 없으면 메모리에 저장하는 겁니다.
새로운 코드는 ContextCompat.getExternalFilesDirs()를 이용하여 File[] 리스트를 가져옵니다.
이때, 0번만 있고 디렉토리면 메모리에 저장, 1번도 있고 디렉토리면 sd카드에 저장하게 변경했습니다.
4.4 버전에서는 저렇게 쓰면 된다고 검색이 되어 썼지만.. 액세스거부당했습니다.
당연히 매니페스트에서는 WRITE_EXTERNAL_STORAGE 허용해줬구요.
영문자료를 보니까, syncronized permission 어쩌구 저쩌구하는 경우를 제외하고는,
sd카드 못쓴다는 둥.. 그런 소리가 적혀있었습니다.
이 부분에서 잘 모르겠습니다.
4.4에서 쓰되 퍼미션허용을 어떻게 하는지 아시는 분 있으시면 도와주시면
감사하겠습니다.
참고로 저는 C/C++/C#을 주로하고요, 안드로이드-자바는 그냥 바로 시작했습니다.
이전 사람이 짜놓고 간 오류부분을 분석해서 수정중인데.. 잘 안되네요.
파일한개 만들어 읽고 쓰는데 뭐이리 안되는지... 핸드폰마다 또 다틀리고..
버전이 업글되면 하위버전이랑 호환도 안되고... 완전 승질이 납니다. ㅡ.ㅜ