Android6.0权限申请

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26464451/article/details/82890862

最近由于项目功能迭代,本身图省事不想要在代码中动态的申请权限,所以在build.gradle中的minsdk写成了19 ,而targetSdkVersion 也是19,这样就避免了在6.0系统上动态申请权限,本来一切都是ok的,但是在小米8上的8.1系统版本中出现了问题,代码中获取不到权限,这块具体为什么也没有去仔细研究,估计是小米系统做了验证什么的.
Android动态申请权限
其实这部分稍微看一下,很简单。简单介绍一下:android在6.0版本之前权限只需要在配置文件中申请一下就可以了,而6.0以后为了用户安全以及用户隐私方面的问题需要在动态代码中去申请权限,由用户决定是否给予权限。
而动态申请权限主要就是几个系统提供的方法:
1、判断当前是否有该权限
int flag = ActivityCompat.checkSelfPermission(context, permission);
if(flag == PERMISSION_GRANTED){
//该权限已拥有
}else{
//没有该权限
}
2、判断该权限是否已勾选禁止后不再提示选项

boolean flag = activity.shouldShowRequestPermissionRationale(permission);
if(flag){
//没有勾选,申请权限还会显示对话框
}else{
//勾选了 ,权限已经在代码中彻底禁止,只能手动在设置页面去授予权限
}
这里有个小的提示:flag是flase的情况 flag==flase 不代表当前没有权限,这只单纯不会显示权限对话框了,有可能在这里权限已经被授予了,这时也是返回false的。所以在else里面也需要去检查权限是否被授予
3、申请权限
ActivityCompat.requestPermissions(activity, permission, requestCode);
需要注意的是:这个permission是字符串数组。

猜你喜欢

转载自blog.csdn.net/qq_26464451/article/details/82890862