Android 11 适配指南
Android 适配指南
- Android 11适配指南
- Scoped Storage(分区存储)
- 诞生的缘由
- 文件访问
- 详细
- 权限改变
- 定位权限
- 软件包可见性
- 前台服务类型
- 读取手机号
- 自定义Toast
- APK签名
- AsyncTask
- SYSTEM_ALERT_WINDOW
Android 11适配指南
Scoped Storage(分区存储)
存储分为私有存储(每个应用有内部的data/data/packageName)和共享存储(SD卡、媒体集)。
诞生的缘由
- 部分应用软件乱占空间,当应用被卸载时,没有同时卸载私有存储以外的。
- 随意读取用户/设备的隐私数据。
文件访问
文件位置 | 所需权限 | 访问方法 | 卸载应用时是否移除文件 |
---|---|---|---|
特定于应用的目录 | 无 | getExternalFilesDir | 是 |
媒体集合(照片,音频,视频) | READ_EXTERNAL_STORAGE | MediaStore | 否 |
下载内容(文档和电子书籍) | 无 | 存储访问框架(加载系统的文件选择器 | 否 |
详细
1.分区存储在android10中新增,但在android11中强制启用。
targetSdkVersion >= 30 ,强制实行分区存储。
AndroidManifest.xml中增加 android:requestLegacyExternalStorage="true"的适配办法已不起效果。
2.MANAGE_EXTERNAL_STORAGE 所有文件管理权限
即使有了权限也无法访问Android/data/目录下的文件。不推荐为了适配使用。
3.存储访问框架 (SAF: Storage Access Framerwork API) 改动
- 运用 ACTION_OPEN_DOCUMENT_TREE 或
ACTION_OPEN_DOCUMENT,无法阅读到Android/data/ 和 Android/obb/目录及其悉数子目录。 - 运用 ACTION_OPEN_DOCUMENT_TREE无法授权拜访存储根目录、Download文件夹。
4.REQUEST_INSTALL_PACKAGES
在Android 11中当用户打开“设备不知道来历运用”的权限,app就会被杀死。该行为与强制分区存储有关,由于持有 REQUEST_INSTALL_PACKAGES 权限的运用能够拜访其他运用的Android/obb 目录。
适配方案:设备外部来历运用需要重启APP。
权限改变
单次权限授权:
每当运用与方位信息、麦克风或摄像头相关的权限时,面向用户的权限对话框会包括仅限这一次选项。
定位权限
与Android 10的差异就是将后台权限的央求分离了出来,增加了用户“回绝”的条件,避免了运用重复央求用户已回绝的权限。
后台权限:ACCESS_BACKGROUND_LOCATION
前台:ACCESS_FINE_LOCATION、 ACCESS_COARSE_LOCATION
适配方案:没有前后台的定位权限时,只能先请求前台的定位权限;有前台的方位信息权限,请求后台的定位时会跳转到对应的设置页面。
软件包可见性
束缚app随意获取其他app的信息和设备状况。避免病毒软件、间谍软件利用,引发网络垂钓、用户设备信息走漏等安全事情。
解决方法:在AndroidManifest.xml 中增加queries元素,里面增加需求可见的运用包名。
下面展示一些 内联代码片
。
<manifest package="com.example.app">
<queries>
<package android:name="com.tencent.mm" />; <- 指定微信包名
</queries>
...
</manifest>
或者 使用它intent
<manifest package="com.example.app">
<queries>
<intent>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/jpeg" />
</intent>;
<provider android:authorities="com.example.settings.files" />
</queries>
...
</manifest>
粗暴适配:QUERY_ALL_PACKAGES权限
前台服务类型
Android 11中,在前台服务拜访摄像头、麦克风、定位,需求在对应的service中增加camera或microphone 服务类型。
<manifest>
...
<service
android:name="MyService"
android:foregroundServiceType="microphone|camera" />;
</manifest>
读取手机号
READ_PHONE_NUMBERS
自定义Toast
Android 11 为方针途径的运用,从后台发送自定义view的Toast音讯体系会进行屏蔽。前台运用不受影响。Toast相应的setView 和 getView也现已扔掉不主张运用。
假定要在后台运用,推荐运用默许的toast或Snackbar替代。
APK签名
V2及更高版本的签名。一同Android 11 增加了对 APK 签名方案 v4 的支撑。
AsyncTask
AsyncTask在Android 11现已不主张运用,主张迁移至kotlin的协程。
此外Handler未指定Looper的结构办法也已不主张运用。
private Handler handler = new Handler(Looper.myLooper());
// 或
private Handler handler = new Handler(Looper.getMainLooper());
SYSTEM_ALERT_WINDOW
Android 11 适配指南相关推荐
- Android 11适配指南之系统相机拍照、打开相册,安卓app开发教程
Android 6 权限适配 Android 7 文件适配 Android 10/11 存储适配 ok,接下来以一个更换头像的小例子来讲解一下. 示例 ======================== ...
- Android P 适配指南
Android P 适配指南 原创: 王超 刘望舒 1周前 作者:王超1478507995000 https://juejin.im/post/5b8959f96fb9a019fe685eb3 本文由 ...
- Android 13 适配指南
Android 13 适配指南 是的,你没看错,现在就要带你适配 Android13. 2022 的Google I/O 发布了 Android 13 beta 2 和 Android 13 Beta ...
- 干货 | Trip.com Android 11 适配之旅
作者简介 Symeon,携程高级移动开发工程师,关注Android前沿技术. Google Play 商店在 2021 年第 3.4 季度正式加强对应用 targetSdkVersion 的限制,要求 ...
- Android 10 和Android 11 适配采坑 实践篇
背景 最近在项目中着手做Android10和Android11 适配时候,期间遇到了不少的坑.之前有专门写过qq.微信分享的适配.但是此次在针对偏业务侧适配工作的时候还是碰到了一些新的问题.记录下来, ...
- Android 11适配
Android 11 ( R )适配 1.存储机制更新 Scoped Storage(分区存储) 应用 targetSdkVersion >= 30,强制执行分区存储机制.之前在AndroidM ...
- Android Q 适配指南
在Android 10开始版本中,官方的改动较大,相应的开发者适配成本还是很高的. 这里按照2019.11.11 google android q workshop流程,大概说明一下Android Q ...
- Android Q 适配指南 让你少走一堆弯路
导读 文中链接请自行科学上网 Android Q Beta 1刚出,讲道理国内是不到下半年不用理睬Q的,但是上月末的一封华为要求适配Q的邮件要求我们在5月底之前完成相关适配,不然应用会被下架. 一开始 ...
- Android 13 适配指南~
前言 8月16日,谷歌宣布Android13新系统的源代码已经上传到Android开源项目(AOSP)中,Android13正式发布.自从2022年2月Android13第一个预览版上线以来,历经7个 ...
最新文章
- 该帐户当前被锁定,所以用户 'sa' 登录失败。系统管理员无法将该帐户解锁。...
- assert()函数用法总结【转】
- .net 插件式开发学习总结
- 【Linux】43.ubuntu18.04安装搜狗输入法不能正常使用
- 用Unity3D实现智能巡逻兵游戏
- python学习-综合练习二(整数和浮点数判断奇偶、质数判断)
- Optaplanner终于支持多线程并行运行 - Multithreaded incremental solving
- JDK安装与环境变量配置
- VSCode下载安装和修改插件下载位置(配置右键菜单)和更换终端
- 福州大学计算机科学与技术 何x玲,吴伶 - 福州大学 - 数学与计算机科学学院
- 无人机倾斜摄影三维建模
- react native Switch使用详解
- LV的几种适配器特点
- 迅捷pdf转换器完美解决如何将pdf转换成word问题
- 运维python要掌握到什么程度_运是什么意思 运字五行属什么
- 手机\固定电话座机呼叫转移设置方法
- Microsoft Edge 中的ie浏览器图标、右击新标签页打开功能的关闭方法
- maven完全离线开发【解决jar包自动从网络下载导致打包失败】
- [编辑器]KindEditor 是什么?
- 关闭编译器FPO优化
热门文章
- zabbix监控-企业微信webhook告警并使用markdown格式
- uefi启动 多硬盘gtp_BIOS支持UEFI,整个硬盘GUID(GPT)分区,能否安装原版Mac OS
- ERP系统也有生产管理的功能,它与MES管理系统有什么差异
- 视频教程-Vue全家桶前后台分离实战案例(含资料)-Vue
- 怎样用360查看计算机使用记录,电脑360浏览器历史记录怎么查看
- 影视列表(20211117更新)
- Android app获取短信验证码,并自动填充
- 世界女性科技群落(三):全世界最幸福的地方,女性和科技的月之暗面
- IDEA 批量修改变量名、批量替换代码快捷键
- thinkphp+vue水果购物商城网站