Android6.0权限——安装时默认开启app全部权限
1、默认开启app全部权限
Android6.0之后推出动态申请权限,所有敏感权限默认都是没有开启的状态,这两天偶然间看到其他app安装后所有权限(包括敏感权限)默认都是开启的状态,6.0之后敏感权限都需要申请的,怎么可能跨过用户的,好奇心驱使我研究了一下。
6.0以后,也就是23以后,敏感权限需申请,特别是有些手机系统还需要储存权限,这就相当尴尬了,因为大部分用户安装完app之后都是看都不看一直点下一步的,这个时候储存权限默认是没有开启的,但是app的自动更新需要这个权限,有些系统在需要这个储存权限的时候还不会提示用户,那这就相当尴尬了,怎么解决这个问题呢?让我们来分析一下。
我的开发工具是AS2.3的,创建项目后默认targetSdkVersion是25。 22 之前,也就是android5.1之前包括5.1,在清单文件中注册过的权限默认都是开启状态的,但是23之后,默认的就是没有开启,所以,我们只需要吧targetSdkVersion改为小于22就可以了,这样用户安装后权限默认就是给予的状态,就解决了这个问题。
但是,升级是大势所趋,所以大家尽量还是从了谷歌吧。
2、兼容性
为了保持兼容性建议使用v4包的兼容方法:
ContextCompat.checkSelfPermission()
ActivityCompat.requestPermissions()
ActivityCompat.OnRequestPermissionsResultCallback
ActivityCompat.shouldShowRequestPermissionRationale()
当targetSdkVersion小于23,但是设备是6.0系统时:
设备权限模型使用老的版本
清单文件中列出的权限只会在安装时询问
用户可以在设置列表中编辑相关权限,这对应用能否正常运行有很大影响
当targetSdkVersion大于等于23,但是设备系统小于6.0时:
设备权限模型使用老的版本
清单文件中列出的权限只会在安装时询问
参考博文链接:https://blog.csdn.net/kong_gu_you_lan/article/details/52488097
使用运行时权限遇到的一些问题汇总到了一篇博客中,欢迎点击查看《Android 6.0运行时权限问题汇总》。