隐私和安全保护持续升级
在 Android Q 中,用户可以更好地管理应用对共享文件的访问权限。用户可通过新的运行时权限允许应用访问照片、视频或音频文件。此外,应用必需通过系统文件选择器才能访问下载文件,也就是说,访问权限完全由用户掌控。Android Q 还针对外部储存空间引入了一些变更,主要变更点总结:
-
Android Q为每个应用程序在外部存储设备提供了一个独立的存储沙箱,应用直接通过文件路径保存的文件都会保存在应用的沙箱目录,另外应用卸载的时候默认所有应用沙箱目录是会被删除。
-
共享集合:不希望应用卸载删除的文件,需要应用通过MediaProvider或者SAF的方式保存在公共共享集合目录,公共集合目录包括:多媒体文件集合(音频、视频和图片)以及下载文件集合。
-
权限变更:应用读写自己沙箱和共享集合目录中应用自己的文件是不需要申请任何权限的,但是如果应用需要读取其他应用生成的多媒体文件就需要申请权限:(1)读取其他应用存放在共享集合的图片和视频文件,就需要分别申请READ_MEDIA_IMAGES和READ_MEDIA_VIDEO权限,具体要申请哪个权限取决于应用需要访问的文件类型(2)读取其他应用存放在共享集合的音乐类型文件,就需要申请READ_MEDIA_AUDIO权限;(3)读取其他应用生成的多媒体文件,需要通过MediaProvider的接口读取,无法直接通过文件路径读取;(4)系统只提供了多媒体文件的读权限,没有提供写权限,应用无法通过申请写权限修改其他应用生成的文件;(5)下载目录的文件没有增加对应的权限,读取下载目录的文件需要通过SAF的方式读取。
-
写其他应用的多媒体文件,需要通过申请成为默认系统图库和音乐应用,或者让用户主动授权的方式实现。
-
需要读写指定的任意目录的文件只能通过SAF的方式实现。
-
谷歌提供的兼容性方案:
(1)权限兼容方案:应用的TargetSdkVersion<Q,并且申请了老的存储权限:READ_EXTERNAL_STORAGE/WRITE_EXTERNAL_STORAGE权限,会自动转成新增加的三个权限,动态授权弹框提示的也是新的权限弹框。
(2)Fota升级兼容性方案:该特性只对新安装的应用生效,对于安卓Q之前的手机已经安装的应用,并且授予了老的存储权限,fota升级到Q版本之后,该应用不会受到该特性的影响
适配指导
谷歌提供的适配指导:https://developer.android.google.cn/preview/privacy/scoped-storage;