Android M requestPermissions(ACCESS_COARSE_LOCATION),不显示对话框?

qin*_*iao 3 permissions android runtime android-6.0-marshmallow

AndroidManifest.xml 添加了它:

<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

requestPermissions(ACCESS_COARSE_LOCATION)不显示任何对话框,并onRequestPermissionsResult返回 -1。

而是requestPermissions(Manifest.permission.CAMERA)正常工作。

另一个问题Android M 6.0 - Manifest.permission.WRITE_SETTINGS 错误

Mat*_*ini 5

uses-permission名字有错别字,权限是 3 's'

从此改变:

<uses-permission android:name="android.permisssion.ACCESS_COARSE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)

对此:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Run Code Online (Sandbox Code Playgroud)