개발자 블로그
안드로이드 오레오 대응 개발시 권한 관련 주의사항 본문
안드로이드 마시멜로 버전이 출시되었을 때, 변경된 권한 모델로 인해서 꽤 많은 피(?)를 본 경험이 있다. 그래서 그런지 새로운 안드로이드 버전이 출시 될 때마다 '권한'과 관련된 변경사항은 특별히 더 신경을 써서 챙겨본다.
과거 마시멜로 권한 관련 에피소드는 아래 링크를 참조
2016/10/20 - [전업개발자 이야기] - 첫 번째 앱을 출시했다가 다시 내리기까지..
이번에 새롭게 출시 된 안드로이드 오레오(Oreo, 8.0) 버전에서도 '권한'에 대한 변경이 있다.
(원문 보기 : https://developer.android.com/about/versions/oreo/android-8.0-changes.html?hl=ko#rmp)
간단하게 설명하면, 안드로이드 마시멜로(6.0)부터 누가(7.1) 까지는 위험한 권한을 요청 할 때 권한 그룹에 속하는 권한(예를 들면, READ_EXTERNAL_STORAGE 같은..) 중 하나로 요청을 하면 해당 그룹에 속한 권한을 모두 사용할 수 있었는데, 이게 '잘못된' 동작이었다는 것. 그래서 오레오(8.0) 버전부터는 명시적으로 요청한 권한만 허용하도록 변경되었다는 얘기다.
밑에 있는 예시가 딱 나한테 해당되는 케이스다. 아마 나 뿐만 아니라 가장 일반적인 케이스가 아닐까 싶다. 외부 저장소에 읽고 쓸 수 있는 권한은 위험한 권한으로 분류되기 때문에 런타임에 권한을 요청해야 된다. 일반적으로 쓰기 권한을 요구하는 앱의 경우에는 읽기 권한도 함께 필요로 하는데, 내 경우에는 그냥 READ_EXTERNAL_STORAGE를 써서 요청했었다. 하지만 오레오 버전부터는 이렇게 READ_EXTERNAL_STORAGE만 요청을 하게 되면, 딱 읽기 권한만 주어지기 때문에 쓰기 작업을 할 때 예외가 발생하고, 예외처리를 하지 않았다면 앱이 비정상 종료된다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 ProgressDialog Deprecated 관련 삽질 기록 (0) | 2017.09.27 |
---|---|
안드로이드 오레오 대응 개발 후기 (0) | 2017.09.26 |
안드로이드 OS 지원 중단 안내 문구작성 예시 (0) | 2017.08.22 |
안드로이드 에뮬레이터에서 파일관리자 앱 사용 방법 (0) | 2017.01.25 |
SecurityException - Permission Denial:starting Intent... 오류 (0) | 2017.01.23 |