Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

onRequestPermissionsResult returns immediately with denied permission

My Android app needs to request permission for location services. I do this with:

ActivityCompat.requestPermissions(this, new String[]{
                            Manifest.permission.ACCESS_COARSE_LOCATION},
                            REQUEST_CODE_ACCESS_COARSE_LOCATION);

But immediately after this is called, onRequestPermissionsResult returns immediately with permission denied:

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
    switch (requestCode) {
        case REQUEST_CODE_ACCESS_COARSE_LOCATION: {

        }
    }
}

The permission is listed in the manifest:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>

I also cleared the cache to prevent any previous denial the user gave from affecting this.

I am expecting a dialog to pop up requesting the user to grant or deny permission to the location services but it isn't showing.

like image 207
Johann Avatar asked Feb 25 '16 16:02

Johann


1 Answers

Change:

<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION"/>

to:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

The permission is for "coarse" location data (i.e., not fine-grained), not "course" location data (e.g., where some university class is being held).

like image 52
CommonsWare Avatar answered Nov 15 '22 16:11

CommonsWare