Android6.0权限申请

本文详细解析了Android 6.0之后的动态权限申请机制,包括如何检查权限状态、判断用户是否选择不再提示,以及如何正确申请权限。并介绍了在不同Android版本和设备上可能遇到的权限申请问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近由于项目功能迭代,本身图省事不想要在代码中动态的申请权限,所以在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是字符串数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值