인프런 커뮤니티 질문&답변

뭐하지이름님의 프로필 이미지
뭐하지이름

작성한 질문수

[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

FutureBuilder 위젯 사용하기

LocationPermission.denied관련 질문입니다

작성

·

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 상태가 될 수 있습니다.

감사합니다!

뭐하지이름님의 프로필 이미지
뭐하지이름

작성한 질문수

질문하기