Fix: location permission returns denied when user selects approximate by HasanAlqaisi · Pull Request #1504 · Baseflow/flutter-permission-handler
Issue: On Android 12 (API 31) and higher, users have the option to grant "Approximate" location (Coarse) instead of "Precise" location (Fine). When a user selects "Approximate", the system grants ACCESS_COARSE_LOCATION but denies ACCESS_FINE_LOCATION.
Currently, permission_handler incorrectly reports the status as PermissionStatus.denied in this scenario. This prevents apps from functioning that are capable of working with only approximate location.
It is also reported as an issue here
Expected Behavior: If the user grants "Approximate" location, the permission status should be reported as PermissionStatus.granted, as the app does have access to location data (with lower accuracy).
Pre-launch Checklist
- I made sure the project builds.
- I read the Contributor Guide and followed the process outlined there for submitting PRs.
- I updated
pubspec.yamlwith an appropriate new version according to the pub versioning philosophy, or this PR is does not need version changes. - I updated
CHANGELOG.mdto add a description of the change. - I updated/added relevant documentation (doc comments with
///). - I rebased onto
main. - I added new tests to check the change I am making, or this PR does not need tests.
- I made sure all existing and new tests are passing.
- I ran
dart format .and committed any changes. - I ran
flutter analyzeand fixed any errors.