Android Q适配攻略(五)(存储权限变更)
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_STORAGE
和WRITE_EXTERNAL_STORAGE
两项危险权限,限制 App 只能使用自己的应用空间存放文件。
当 App 需要保存一些不能随卸载删除的文件时,需要根据存放位置动态申请新增的权限:READ_MEDIA_IMAGES
,READ_MEDIA_VIDEO
或 READ_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适配攻略(五)(存储权限变更)相关推荐
- Android Q适配攻略(二)(后台定位适配)
Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...
- Android Q适配攻略(一)(图标适配)
Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...
- Android Q适配攻略(四)(后台Activity启动限制)
Android Q之提前适配攻略(一)(图标适配) Android Q之提前适配攻略(二)(后台定位适配) Android Q之提前适配攻略(三)(唯一标识符更改) Android Q之提前适配攻略( ...
- Android 动态创建控件并设置控件的大小之Android屏幕适配攻略(五)
Android 屏幕适配攻略(五)动态创建控件并设置控件的大小 题记 -- 执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 重要消息 flutter中网络请求dio使用分析 视频 ...
- Android 屏幕适配攻略(六)设置通知样图标与启动图标适配
Android 屏幕适配攻略(六)设置通知样图标与启动图标适配 1 Android中资源文件中的图片加载分析 Android中对屏幕的像素适配处理分类 屏幕密度 对应的标签 对应的像素 120dip ...
- Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸
Android 屏幕适配攻略(二)单位dp与px来表示控件的尺寸 在安卓中,将屏幕密度分为了五类 屏幕密度 对应的标签 对应的像素 120dip ldpi 1dp= 0.75px 160dip mdp ...
- Android 屏幕适配攻略(一)
Android 屏幕适配攻略(一) 1 常用的单位概述 px pixels(像素) 表示屏幕实际的象素.例如,320 x 480 (也就是生活中常说的屏幕分辨率为320x480)的屏幕在横向有320个 ...
- Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小
Android 屏幕适配攻略(四)获取手机屏幕的相关信息 与动态设置控件的大小 1 动态获取手机屏幕的 屏幕密度与对应像素比例 例如在 320 * 480 尺寸为 3.2 英寸的手机 ,对应的像素密度 ...
- Android 屏幕适配攻略(三)单位dp与sp
Android 屏幕适配攻略(三)单位dp与sp 1 一般手机默认使用情况下 在安卓中,一般情况下,也就是正常使用情况下 屏幕密度 对应的标签 对应的像素 sp 120dip ldpi 1dp= 0. ...
- Android 10 适配攻略
相比较去年的写的Android 9适配,这次Android 10的内容有点多.没想到写了我整整两天,吐血中... 准备工作 老规矩,首先将我们项目中的targetSdkVersion改为 29. 1. ...
最新文章
- 套接字编程--TCP
- 5G UE — SIM Card
- 水果电池打造柠檬电动汽车!
- 视图的概念以及使用视图的好处
- python输出汉字怎么注释中文_Python使用中文注释和输出中文(原创)
- java join 源码_java并发:join源码分析
- python redis 哨兵_Redis哨兵机制
- 人工智能python基础知识_AI 人工智能基础知识-习题
- cmd查看所有数据库 db2_db2 cmd命令操作
- python训练数据集_python 划分数据集为训练集和测试集的方法 python中如何实现将数据分成训练集与测试集...
- JS的日期操作:String转date日期格式、求日期差
- Leetcode.43:(Python)给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。
- Swiper:无限循环滚动时出现空白页/页面内容不刷新
- 第四章 Caché JSON 处理数据类型
- 导数、偏导数以及梯度
- getElementsByName、getElementById的简单用法
- Kubernetes VPA配置
- 仿微信录制视频和拍照并发送留言
- 最大回撤率MaxDawndown算法(Python3)
- 新冠“照妖镜”,体质弱点现原形。你是啥症状?2023年,请好好善待你的身体!
热门文章
- git_ Git 工具 - 储藏(Stashing)
- spring cloud alibaba全家桶集合
- 如何打开.exe文件
- Oracle 19c 参数列表及概要介绍
- Sending the email to the following server failed.IOException while sending message问题解决
- EM算法及python实现
- Pascal 英语句子语法解析器
- 职场最高级的聪明是靠谱,到底一个人怎样才算真正靠谱?
- Windows 无法打开“添加打印机”本地打印后台处理程序服务没有运行。请重新启动打印后台处理程序
- 深入浅出MMC子系统