【发布时间】:2015-10-22 10:14:42
【问题描述】:
AndroidManifest.xml 已添加:
<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) 不显示任何对话框,onRequestPermissionsResult 返回 -1。
相反,requestPermissions(Manifest.permission.CAMERA) 工作正常。
另一个问题:Android M 6.0 - Manifest.permission.WRITE_SETTINGS Error
【问题讨论】:
-
您是第一次尝试打开对话框吗?您是否选中了“永不重复”选项?
-
重新安装应用,第一次shouldShowRequestPermissionRationale()返回false,对话框仍然不显示。
标签: android permissions runtime android-6.0-marshmallow