Android Q之提前适配攻略(一)(图标适配)

Android Q之提前适配攻略(二)(后台定位适配)

Android Q之提前适配攻略(三)(唯一标识符更改)

Android Q之提前适配攻略(四)(后台Activity启动限制)

Android Q之提前适配攻略(五)(读取权限变更)

数据隐私保护:沙盒机制

对于 Android 用户来说,这是一项非常优秀的改进。自从 Android M 以来,我已经遇到许多不给读写外存权限就无法使用的 App 了。结果是打开文件管理就能看到一堆乱七八糟的文件和文件夹,这对习惯自己整理存储空间的人来说太痛苦了。

但读写外存的权限并非必要的。通过Context.getExternalFilesDir可以获取到属于 App 自身的文件路径,通常是~/Android/data/<package-name>/**/。在该目录中读写文件均不需要申请权限,当 App 被卸载时,该文件夹及内容也会全部删除。

Android Q 中删除了READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE两项危险权限,限制 App 只能使用自己的应用空间存放文件。

当 App 需要保存一些不能随卸载删除的文件时,需要根据存放位置动态申请新增的权限:READ_MEDIA_IMAGES,READ_MEDIA_VIDEOREAD_MEDIA_AUDIO(分别对应系统的媒体文件夹)。 比较特殊的是 Downloads 文件夹:写入和读取自身写入的数据不需要申请权限,但想获取其他 App 存进去的文件时,必须使用系统的文件选择器,由用户选择。

以上几个路径之外的所有位置均不可访问,是不是很让人安心呢?

[模拟器测试结果]
测试安装了一个 targetSdkVersion=26 的 demo 项目,除了动态申请存储权限时的文案之外一切都没改变,应该是兼容了 targetSdkVersion 小于 Q 的 App。考虑到应用市场对 targetSdkVersion 要求(今年只要求到28),最晚要在明年 Android R 面世之前完成适配。

其他适配相关内容简报

其他的更新内容估计要等 I/O 之后上真机调试了,就简要描述一下吧

  • App 在后台使用定位需要动态申请ACCESS_BACKGROUND_LOCATION

    • 注意:不可单独申请,原来的定位权限依然需要
  • 提供 折叠屏/多屏显示 适配方案(生命周期调整)
  • share intent UI 预加载
  • 设置面板:可以在 App 内唤起简易设置页面(网络/音量/NFC)
  • Wifi 模式选择(high performance / low latency)

Android Q适配攻略(五)(存储权限变更)相关推荐

  1. Android Q适配攻略(二)(后台定位适配)

    Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...

  2. Android Q适配攻略(一)(图标适配)

    Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...

  3. Android Q适配攻略(四)(后台Activity启动限制)

    Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...

  4. Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)

    Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...

  5. Android 屏幕适配攻略(六)设置通知样图标与启动图标适配

    Android 屏幕适配攻略(六)设置通知样图标与启动图标适配 1 Android中资源文件中的图片加载分析 Android中对屏幕的像素适配处理分类 屏幕密度 对应的标签 对应的像素 120dip ...

  6. Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸

    Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸 在安卓中,将屏幕密度分为了五类 屏幕密度 对应的标签 对应的像素 120dip ldpi 1dp= 0.75px 160dip mdp ...

  7. Android 屏幕适配攻略(一)

    Android 屏幕适配攻略(一) 1 常用的单位概述 px pixels(像素) 表示屏幕实际的象素.例如,320 x 480 (也就是生活中常说的屏幕分辨率为320x480)的屏幕在横向有320个 ...

  8. Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小

    Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小 1 动态获取手机屏幕的 屏幕密度与对应像素比例 例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度 ...

  9. Android 屏幕适配攻略(三)单位dp与sp

    Android 屏幕适配攻略(三)单位dp与sp 1 一般手机默认使用情况下 在安卓中,一般情况下,也就是正常使用情况下 屏幕密度 对应的标签 对应的像素 sp 120dip ldpi 1dp= 0. ...

  10. Android 10 适配攻略

    相比较去年的写的Android 9适配,这次Android 10的内容有点多.没想到写了我整整两天,吐血中... 准备工作 老规矩,首先将我们项目中的targetSdkVersion改为 29. 1. ...

最新文章

  1. 套接字编程--TCP
  2. 5G UE — SIM Card
  3. 水果电池打造柠檬电动汽车!
  4. 视图的概念以及使用视图的好处
  5. python输出汉字怎么注释中文_Python使用中文注释和输出中文(原创)
  6. java join 源码_java并发:join源码分析
  7. python redis 哨兵_Redis哨兵机制
  8. 人工智能python基础知识_AI 人工智能基础知识-习题
  9. cmd查看所有数据库 db2_db2 cmd命令操作
  10. python训练数据集_python 划分数据集为训练集和测试集的方法 python中如何实现将数据分成训练集与测试集...
  11. JS的日期操作:String转date日期格式、求日期差
  12. Leetcode.43:(Python)给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
  13. Swiper:无限循环滚动时出现空白页/页面内容不刷新
  14. 第四章 Caché JSON 处理数据类型
  15. 导数、偏导数以及梯度
  16. getElementsByName、getElementById的简单用法
  17. Kubernetes VPA配置
  18. 仿微信录制视频和拍照并发送留言
  19. 最大回撤率MaxDawndown算法(Python3)
  20. 新冠“照妖镜”,体质弱点现原形。你是啥症状?2023年,请好好善待你的身体!

热门文章

  1. git_ Git 工具 - 储藏(Stashing)
  2. spring cloud alibaba全家桶集合
  3. 如何打开.exe文件
  4. Oracle 19c 参数列表及概要介绍
  5. Sending the email to the following server failed.IOException while sending message问题解决
  6. EM算法及python实现
  7. Pascal 英语句子语法解析器
  8. 职场最高级的聪明是靠谱,到底一个人怎样才算真正靠谱?
  9. Windows 无法打开“添加打印机”本地打印后台处理程序服务没有运行。请重新启动打印后台处理程序
  10. 深入浅出MMC子系统