작성
·
477
0
LocationPermission checkedPermission = await Geolocator.checkPermission();
if (checkedPermission == LocationPermission.denied) {
checkedPermission = await Geolocator.requestPermission();
if (checkedPermission == LocationPermission.denied) {
return '위치권한을 허가해주세요.';
}}
권한요청 다이얼로그에서 한번허용을 누르고 앱을 종료시킨다음 재실행했을때 LocationPermission.denied가 되어 리퀘스트퍼미션이 다시 실행되는것같습니다.(위 코드 첫줄부터 실행)
그런데 리퀘스트퍼미션을 했는데도 다시 denied가되어
if (checkedPermission == LocationPermission.denied) {
return '위치권한을 허가해주세요.';
}
해당 if문이 실행되는경우는 어떤게있을까요?
답변 1
0
안녕하세요!
requestPermission()을 실행하는건 권한을 요청하는 역할만합니다.
만약에 사용자가 권한을 거절한다면 역시 LocationPermission.denied 상태가 됩니다.
즉 requestPermission()을 실행하는 것 자체는 권한 상태와 직접적인 연관이 없습니다.
앱을 삭제하고 다시 설치하거나, 권한요청을 응답하지 않거나 여러 예외적인 상황에 권한요청이 다시 될 수 있으며 한번도 권한 요청에대한 응답을 하지 않은경우 역시 denied 상태가 될 수 있습니다.
감사합니다!