3

AndroidManifest.xml has add it:

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

ActivityCompat.requestPermissions()

int permissionCheck = ContextCompat.checkSelfPermission(this,
                Manifest.permission.ACCESS_COARSE_LOCATION);
if (!(permissionCheck == PackageManager.PERMISSION_GRANTED)) {

    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.ACCESS_COARSE_LOCATION)) {

    } else {
        // do request the permission
        ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
                8);
    }
}

onRequestPermissionsResult()

@Override
public void onRequestPermissionsResult(int requestCode,
        String permissions[], int[] grantResults) {
    switch (requestCode) {
        case 8: {
            // grantResults[0] = -1
            if (grantResults.length > 0
                && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

            } else {

            }
            return;
        }
    }
}

requestPermissions(ACCESS_COARSE_LOCATION) doesn't show any dialog, and onRequestPermissionsResult return -1.

Instead requestPermissions(Manifest.permission.CAMERA) is working correctly.

another questionAndroid M 6.0 - Manifest.permission.WRITE_SETTINGS Error

Community
  • 1
  • 1
qinmiao
  • 5,559
  • 5
  • 36
  • 39
  • 1
    Did you try to open the dialog for the first time? Did you checked the option "Never as again"? – Thomas R. Oct 22 '15 at 10:27
  • reinstall the app, first time the shouldShowRequestPermissionRationale() return false,the dialog still don't show. – qinmiao Oct 22 '15 at 12:27
  • src Github:https://github.com/captain-miao/Android_M_requestPermissions – qinmiao Oct 22 '15 at 12:55
  • another question [Android 6.0 Permission Denial: requires permission android.permission.WRITE_SETTINGS](http://stackoverflow.com/a/32083622/238753) – qinmiao Oct 23 '15 at 15:22

1 Answers1

5

There is a typo in the uses-permission name, permission is with 3 's'

Change from this:

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

to this:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Mattia Maestrini
  • 32,270
  • 15
  • 87
  • 94