문제가 생기면 일단 로그부터 보면 반은 갈텐데 늦게 봐서 한참을 돌아서 가는 느낌이다. 안드로이드 apk 파싱 실패에 대한 검색을 해봐도 Client 입장에서 해당 이슈를 피하는 방법을 알려주는 점도 있었고.
W/System.err: java.io.FileNotFoundException: /storage/emulated/0/download/test.apk (Permission denied)
at java.io.FileOutputStream.open0(Native Method)
W/System.err: at java.io.FileOutputStream.open(FileOutputStream.java:308)
at java.io.FileOutputStream.<init>(FileOutputStream.java:238)
at java.io.FileOutputStream.<init>(FileOutputStream.java:180)
나의 경우에는 최근에 안드로이드 11로 버전을 올리면서 외부 저장소에 대한 권한이 강화되었는데 다운로드 폴더를 통해 apk 파일을 다운을 받고 있는 상황이었다. 이전에 다운받은 apk 파일이 있으면 삭제한다는 부분이 있었는데 외부 저장소 권한이 없다보니까 접근에 문제가 발생한 것이었다.
어플 내부 저장소 폴더에 apk 파일을 저장하도록 변경하니 문제가 해결되었다.
이전
String strDownloadDir = String.format("%s/download/", Environment.getExternalStorageDirectory().getAbsolutePath());
변경
String strDownloadDir = activity.getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS) + "/";
'프로그래밍 > Android, iOS' 카테고리의 다른 글
[Android] 앱 여부 확인하기 (0) | 2022.03.29 |
---|---|
[Android] 취약점 분석 정리 (0) | 2022.03.29 |
[Android] Floating button으로 추가 버튼 만들기 (0) | 2022.03.29 |
[Android] WIFI 제어하기 (0) | 2021.12.06 |
[Android] Signing 처리 (0) | 2021.12.04 |
댓글