마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 4.4.2(target-API 19) 환경에서 6.0의 접근권한 설정 문의

0 추천
앱 실행 초기화면에 접근 권한 동의 ui를 만들고 6.0미만은 비동기 방식으로 각 권한을 설정할수있도록 조치를 해야되는 상황입니다.

현 개발환경 - 이클립스,폰갭,(cordova)안드로이드 4.4.2 라이브러리 사용중이며,

                     miniSdkVersion:10 - targetSdkVersion:19   , 사내망(인터넷x)

                     테스트단말버전: 4.4.2 , 5.1.1

                     현 배포된 앱 사용자버전: 4.1.2~ 7.1.2로 다양합니다.  

"checkSelfPermission","requestPermission" 을 사용하려고보니 API 23부터 사용가능하다고 나오네요..

현재는 API 19 라 막막하네요..

1.API 19에서 위 메소드를 대체할만한 접근권한 제어 관련 메소드가 있을까요?

2.아니면 별도로 각 권한마다 DB에 플래그를 만들어서 따로 관리를 하는것도 괜찮은건지..

3.checkSelfPermission가 API 23 - android.support에 있던데 해당부분만 따로받아서 적용할수도있는건가요?

가장문제는 현재 서비스중인 앱이라 다음 배포시 사용자분들에게 피해가 가지않아야될거같아 환경변경이 무섭네요..(앱 자동업데이트가 안되고 삭제후 다시받아야되는 경우같이..)

혹시 아시는분 계시면 답변 부탁드립니다.

갓 투입된 유지보수 초보라 퇴근후에도 계속 머리에 맴도네요..
익명사용자 님이 2017년 8월 17일 질문

1개의 답변

0 추천
1. 없습니다

2. 23이전에 컴파일 된 app은 애플리케이션 관리에서 권한을 제거할 시 '이 앱은 Android 이전 버전에 맞게 설계되었습니다. 권한을 거부하면 정상적으로 작동하지 않을 수 있습니다' 라는 팝업이 나오게 되며, 그 후 동작은 장담할 수 없습니다

3. target이 19인데 23의 api를 쓸 수 없습니다

 

결론적으로 23이상으로 높이시고 정상적인 permission check 루틴을 타도록 수정하십시요
prague (26,200 포인트) 님이 2017년 8월 17일 답변
prague님 말씀대로 하시는게 좋을 것 같습니다.
저도 4.4기준으로 앱을 제작했었는데 요즘은 대부분이 롤리팝 이상이라 대책을 미리 마련하시는게 좋습니다. VERSION_CODES를 체크해서 마시멜로우 이상이라면 권한을 물어야 합니다. api level 19에선 당연히 상위 api를 사용할 수 없습니다. 테스트 단말기가 킷캣,롤리팝뿐이신거같은데 회사측에 요청해서 최소 6.0인 기기를 하나 구해서 테스트 해보시는게 가장 빠릅니다.
구글링하시면 퍼미션다루는 예제는 많으니 참고해보시고..이게 좀 골치아픈게 권한을 요청하는 다이얼로그를 띄울 때 사용자가 바로 허가하면 좋지만 거부를 여러번 하는 경우도 있을거에요. 심지어 체크박스로 다시보지않기도 있어서 그걸 체크해버리면 다음번에 앱을 실행할 때 권한체크를 묻지도 않게되는 [거부]상태가 유지되버립니다. 이럴경우엔 앱 정보 페이지에서 사용자가 수동으로 권한을 체크해야하구요.권한설정은 여기 참고해보세요. http://gun0912.tistory.com/61
결론은 윗분 말씀대로 permission을 적용하려면 api는 23이상으로 수정하셔야합니다.
빠른답변감사합니다. api를 올리는방법밖에는없겠네요
자세한 답변감사합니다.
...