Q行为变更:所有应用
用户隐私权限变更
AndroidQ引入了大量更改和限制以增强对用户隐私的保护。
官方文档将这一部分内容独立于Q 行为变更:所有应用来介绍,是因为这一部分内容庞大且重要,个人认为Q的最大更新就是用户隐私权限变更。具体变更的权限如下:
权限; 受影响应用; 如何启用(影响范围)
1、存储细化了
(1)每个应用都有一个私有文件夹,访问私有文件夹无需权限
(2)访问系统媒体文件:Q中引入了一个新定义媒体文件的共享集合,如果要访问沙盒外的媒体共享文件,比如照片,音乐,视频等,需要申请新的媒体权限:READ_MEDIA_IMAGES,READ_MEDIA_VIDEO,READ_MEDIA_AUDIO,申请方法同原来的存储权限。
3. 访问系统下载文件:对于系统下载文件夹的访问,暂时没做限制,但是,要访问其中其他应用的文件,必须允许用户使用系统的文件选择器应用来选择文件。
4. 访问其他应用沙盒文件:如果你的应用需要使用其他应用在沙盒内创建的文件,请点击使用其他应用的文件,本文不做介绍。
当满足以下每个条件时,将开启兼容模式,即不开启Q设备中的存储权限改动:
应用targetSDK<=P。
应用安装在从 Android P 升级到 Android Q 的设备上。
但是当应用重新安装(更新)时,不会重新开启兼容模式,存储权限改动将生效。
所以按官方文档所说,无论targetSDK是否为Q,必须对应用进行存储权限改动的适配。
2、不能获得IMEI和序列号
获得设备ID,会返回空值(targetSDK<=P)或者报错(targetSDK==Q)。且官方所说的READ_PRIVILEGED_PHONE_STATE权限只提供给系统app,所以这个方法算是废了。
谷歌官方给予了设备唯一ID最佳做法,但是此方法给出的ID可变,可以按照具体需求具体解决。