版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/82863573
1、背景
这次公司提交的新版本,menifest新增加了DISABLE_KEYGUARD,这个权限,允许程序禁用键盘锁
2、Google Play提交的时候,对新增加对权限,有了要求
要求说明一下这个权限的用途
3、是时候全面了解Android的权限体系了,我是坑自己
a、权限背景
从 Android 6.0(API 23)开始,用户开始在应用运行时向其授予权限,而不是在应用安装时授予。这种权限机制可以让用户更好的管理应用的权限,保障用户隐私。
在API22及以前,就是5.1及以前版本,都是安装时,要求用户授权,而从6.0开始,在App运行时要求其授予权限
b、权限分类
系统权限分为两类:
- 正常权限不会直接给用户隐私权带来风险。如果您的应用在其清单中列出了正常权限,系统将自动授予该权限。
- 危险权限会授予应用访问用户机密数据的权限。如果您列出了危险权限,则用户必须明确批准您的应用使用这些权限。
下方就是危险权限,而同类型的权限,Android还给分了Group,可见老外真的好会总结
c、一些注意事项
- 在 Android 5.1(API 22)或更低版本,并且应用的 targetSdkVersion 是 22 或更低版本,则系统会在安装时要求用户授予权限。(沿用之前的权限系统)
- 即使在安装时已经授予应用所有权限,在Android 6.0之后依然可以通过 "Setting" 来关闭已经授予的权限。
- 在请求权限时,操作系统只告诉用户应用需要的权限组,而不告知具体权限,这点牛了
- 如果在未检查授权的情况下,直接使用危险权限,会导致程序Crash,这个恨了
- 使用 v4 包中的 ContextCompat 处理权限(v13 包中的FragmentCompat),不需要考虑版本问题。
4、这是关于权限的实现方式,这哥们总结的挺好的
a、我简单总结一下,首先使用功能前,检查是否获得危险权限
b、没有就去向用户申请
c、用户不给,就再弹一个自定义对话框解释一下
e、menifest里面和原来设置的一样