Android Q privacy change: Scoped storage

  • Android,AndroidQ,Android存储权限,隐私权限,作用域存储

Android Q 一个重大的隐私权限变化,是作用域存储。如果你的应用 target 低于 Android 9(API 28),看上去没有任何的变化。如果你的应用工作在作用域存储的模式下,可以在 manifest 配置中增加 requestLegacyExternalStore 属性,或者把 target 适配到 Android 9.

为了给用户更多的文件管理控制,和避免文件的混乱,Android Q 改变了文件存储的规则。READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE 权限和之前一样,还是需要在运行时获取。但是 Android Q 会为每个应用分配一个过滤视图,这样应用只能看见特有的目录和特有的文件格式。

通过 Context.getExternalFilesDir() 可以获得应用特有的目录。这个目录的读写权限不需要另外的权限申请。如果你的应用需要获得其他应用的存储目录的访问权限,你需要

  • 获得 READ_EXTERNAL_STORAGE 授权
  • 被访问的文件需要是以下已知的文件格式
    • 图片,存储在 MediaStore.Images
    • 视频,存储在 MediaStore.Video
    • 音频,存储在 MediaStore.Audio

如果需要访问其他应用创建的文件,包括 downloads 目录,你的应用需要使用 Storage Access Framework

多媒体文件的访问有受到了一些限制,比如 Exif 元数据默认是不提供的,除非你获得了 ACCESS_MEDIA_LOCATION 权限。

应用卸载

应用卸载后,应用特有的目录同样会被清除,如果你需要在应用被卸载的时候还保留文件,需要把它们保存到 MediaStore 中。

Opt out of filtered view

Google 还是推荐尽快适配 Android Q,但是在此之前,还是有过度的方案,在没有完全测试通过的情况下,可以在 manifest 中增加属性设置。

阅读原文 : Android Q privacy change: Scoped storage https://developer.android.com/preview/privacy/scoped-storage

- EOF -

本文链接 https://spacepage.top/archives/2019.08.21-AndroidQ隐私权限变化-作用域权限.html,欢迎转载,转载请注明出处。

友情链接
网站统计
  • 网站已运行:42天
  • 文章总数:60 篇