3
AndroidManifest.xml中有添加:?版本的Android M requestPermissions(ACCESS_COARSE_LOCATION),不顯示對話框
<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,對話框仍然不顯示。 – qinmiao
SRC Github上:HTTPS://github.com/captain-miao/Android_M_requestPermissions – qinmiao