ActivityCompat.requestPermissions 不弹框为什么啊!!测试机是小米,代码如下:
private void checkLocationPermission() {
if (PackageManager.PERMISSION_GRANTED == ContextCompat
.checkSelfPermission(MainActivity.this,
Manifest.permission.ACCESS_COARSE_LOCATION)) {
Toast.makeText(this, "定位权限已开启", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "定位权限未开启", Toast.LENGTH_SHORT).show();
ActivityCompat.requestPermissions(MainActivity.this,
new String[] { Manifest.permission.ACCESS_COARSE_LOCATION },
MY_PERMISSIONS_REQUEST);
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions, int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST:
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(this, "已授权", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "已拒绝", Toast.LENGTH_SHORT).show();
}
break;
}
}
android 从6.0对用户权限的获取方式进行了修改,不像以前那样只在AndroidManifest.xml单单的添加权限就可以的,有些敏感的权限还需要在runtime询问用户是不是赋予此APP所需要的权限,当然如果你没有对这些敏感的权限在runtime进行处理的话android默认是会禁止当前权限。下面就说说那些权限是需要在runtime进行处理的.
相信被6.0权限问题折磨了很久的人都看......
答案就在这里:Android 6.0权限的问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。