https://pub.dev/packages/geolocator/versions/8.0.1
8.0.1 버전 기준으로 작성되었습니다.
Geolocator Example과 같이 isLocationServiceEnabled()
함수를 우선 호출하여, 위치 서비스를 우선 체크후 checkPermission()
함수를 호출하면, 조금 더 권한 체크 로직이 깔끔합니다.
저의 경우에는 권한
을 우선 체크하고, 위치 서비스
체크를 하는 방향으로 진행하다보니 아래 케이스 처럼 구분이 복잡해지는 문제가 발생했습니다.
💻 위치 서비스를 우선 체크하고 권한 체크하는 방향으로 변경했습니다..ㅎㅎ
Permission | Platform | Description |
---|---|---|
denied | Android | 초기상태, 권한 거부, GPS 서비스 비활성화 |
denied | iOS | 초기상태 |
deniedForever | Android | x |
deniedForever | iOS | 권한 거부, GPS 서비스 비활성화 |
whileInUse | Android / iOS | 앱 사용중 허용 |
always | Android / iOS | 항상 허용(백그라운드 사용 가능) |
Permission | Platform | Description |
---|---|---|
denied | Android | 권한 거부 |
denied | iOS | x |
deniedForever | Android | x |
deniedForever | iOS | 권한 거부 |
whileInUse | Android / iOS | 앱 사용중 허용 |
always | Android / iOS | 항상 허용(백그라운드 사용 가능) |
권한 설정 페이지
로 이동합니다.앱의 설정 페이지
로 이동합니다.위치 서비스 활성화 페이지
로 이동합니다.Android 버전에 따라서 다르지만, Android 11은 시스템 팝업이 호출되어 바로 위치 서비스를 활성화 합니다.
앱의 설정 페이지
로 이동합니다.사용자가 위치 서비스를 활성화 할 수 있도록 안내가 필요합니다.