Android 12: When user grants only coarse location, EasyPermissions incorrectly determines fine location as permanently denied
Author: ahaapakaCreated Jan 7, 2022Updated Jun 12, 2023
Basic Information
Device type: emulator OS version: Android 12 EasyPermissions version: 3.0.0
Describe the problem
- App request both
ACCESS_COARSE_LOCATIONandACCESS_FINE_LOCATION-- As instructed in https://developer.android.com/training/location/permissions#approximate-request - User grants access to approximate location
- EasyPermission library returns
ACCESS_FINE_LOCATIONas denied permission EasyPermissions.permissionPermanentlyDenied(ACCESS_FINE_LOCATION)returnstrue
What happened? What did you expect to happen?
ACCESS_FINE_LOCATION is determined as permanently denied immediately after first permission dialog. This is incorrect because app can request location permissions again (next time system asks user to upgrade from approximate to precise location).
With Android 12 location permissions and EasyPermissions lib 3.0.0 I could not find a reliable way to determine when to show AppSettingsDialog (i.e. when permission is actually permanently denied and system returns result without displaying a dialog).
Code and logs
I can add later if needed.
Source: googlesamples/easypermissions