【FAQ】从存储权限看HarmonyOS 3.0中应用适配
问题背景:
HarmonyOS 3.0发布了,之前开发的Android的应用,发现系统选项中存储权限部分有变化,如下图:
”存储“权限变为”媒体和文件“,且只能访问”仅媒体“的文件目录。因为项目需要读取本地导入存储文件,”仅媒体“权限无法满足当前项目需求。
初步分析:
控制变量排查问题根源,而在另一台2.0.0的手机并没有发生此问题。如下图中”存储访问权限“开启则可以获取所有外部文件,因而怀疑与3.0系统权限控制有关。
真正的原因:
查阅资料后发现,”仅媒体“权限是Android 11中新增的”媒体文件访问权限“ (Android 11 中的存储机制更新 | Android 开发者 | Android Developers),因此判断HarmonyOS 3.0适配的是Android 11以上版本。因此需要做相应的适配,查阅官方文档针对Android 11上访问所有文件,有一个新的权限MANAGE_EXTERNAL_STORAGE(管理存储设备上的所有文件 | Android 开发者 | Android Developers)
具体步骤如下:
1、在Manifest中声明权限:
声明这个权限后,我们在系统权限管理中就可以找到访问所有文件的权限入口,如下图:
2、判断是否获取到MANAGE_EXTERNAL_STORAGE权限:
3、使用系统intent跳转至权限界面,打开所有文件访问权限:
总结与思考:
HarmonyOS 3.0较2.0相比,适配的Android SDK版本不同,需要大家在Android开发的时候注意版本适配。目前我研究发现3.0.0是适配Android S版本,2.0.0适配的是Android Q版本,大家有兴趣的可以自己研究,欢迎交流。
欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh
相关文章
- iOS开发UI篇—ios应用数据存储方式(归档)
- iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
- iOS学习之七牛云存储应用
- 从零开始入门 K8s | 应用存储和持久化数据卷:存储快照与拓扑调度
- Enterprise Library深入解析与灵活应用(2): 通过SqlDependency实现Cache和Database的同步
- 神奇的Scala Macro之旅(三)- 实际应用
- 聚类分析在市场细分中的应用
- 存储空间降为原来的1/7,TDengine在中移物联网轨迹数据存储中的应用
- 存储实时数据,Spark+TDengine 在中国电信电力测功系统监控平台上的应用实践
- Kubernetes详解(十七)——Pod存活性探针应用实战
- ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求
- SAP UI5 应用的调试标志位的本地存储逻辑 - local storage 使用的一个例子
- SAP UI5应用DatePicker控件的设计明细
- Atitit redis使用场合总结 使用场景 目录 1.1. 3. Session 存储1 1、 配置数据查询1 2. 排行榜应用,取TOP N操作1 1.2. 1、查找最
- Atitit 文件存储标准化api 总结 目录 1. 操作系统,进行操作1 1.1. FileUtils类的应用1 1.2. 各大api 比较2 2. Java。Io用apache的commo
- Python语言学习:Python语言学习之硬件交互应用(arduino、树莓派等)相关的简介、案例应用之详细攻略
- BigData之MongoDB:MongoDB(基于分布式文件存储的非关系型数据库)的简介、下载、案例应用之详细攻略
- 国产系统安装安卓应用教程
- 数据密集型应用存储与检索设计
- 报表应用结构优化之数据分库存储
- y10.第一章 Ceph企业级存储实战进阶 -- Ceph 集群应用基础和CephX 认证机制(十)
- y9.第一章 Ceph企业级存储实战进阶 -- Ceph 集群应用基础(九)
- 《TPM原理及应用指南》学习 —— TPM实体1(4)
- 高性能框架gevent和gunicorn在web上的应用及性能测试
- 【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 详细建模过程解析及代码实现
- Kubernetes 应用存储和持久化数据卷 上