前提 : 在做文件遍历时,有的文件在Android10+无法访问,在注册清单下添加android:requestLegacyExternalStorage="true"后可正常访问,但一直不知道具体原因。
使用XXPermissions时读到Android10分区存储后才明白这里的逻辑。

1 概述

Android10使用了分区存储机制,详细内容可参考Android 10 分区存储完全解析,写得十分详细。

简单描述即:分区存储就是对外部存储(sdcard,/storage/emulated/0下的公共目录)进行重新设计,App对外部共享文件的访问需要通过 MediaStrore API 和 Storage Access Framework 来访问;而外部私有文件角度看则无法读写自己应用以外创建的其他文件。
内部私有存储文件(/data/data/packagename/)未进行变更
在这里插入图片描述

2 使用

目前我的做法(参考XXPermissions):
Android10及以下

  • 在 manifest 中设置 requestLegacyExternalStorage 属性为 true
  • 申请READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE
    Android10+
  • 在 manifest 中设置 requestLegacyExternalStorage 属性为 true
  • 申请MANAGE_EXTERNAL_STORAGE 权限

2.1 兼容使用

Target 小于等于 Android 9(API 28)
Target 大于等于 Android 10 (API 29),在 manifest 中设置 requestLegacyExternalStorage 属性为 true

<manifest ... ><!-- This attribute is "false" by default on apps targetingAndroid 10 or higher. --><application android:requestLegacyExternalStorage="true" ... >...</application>
</manifest>

2.2 分区存储

后续更新,可先参考https://www.jianshu.com/p/af9903069ebe

文章参考
https://github.com/getActivity/XXPermissions
https://blog.csdn.net/wanliguodu/article/details/120297395
https://www.jianshu.com/p/af9903069ebe

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89678.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89678.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89678.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IP地理定位技术综述:理论、方法与应用创新(三)

[1]刘学婷,台文鑫,周帆,等.IP地理定位技术综述:理论、方法与应用创新[J].通信学报,2025,46(04):33-48. 2 IP地理定位应用场景 基于 IP 地理定位技术的特性和多样化应用场景,本文将其主要应用分为地理定位服务、网络安全与优化、网络空间测绘3类,如图7所示。基于IP地理定位…

16-C#生成DLL与调用

C#生成DLL与调用 1.2.3.4.5.将DLL文件复制到DEBUG下6.7.8.private void button79_Click(object sender, EventArgs e) {ClassLibrary1.Class1 testnew ClassLibrary1.Class1();UInt16 aConvert.ToUInt16(textBox67.Text);UInt16 b Convert.ToUInt16(textBox68.Text);label90.T…

JSON解析工具哪家强?

一、研究背景与目的 在现代Java应用开发中&#xff0c;JSON数据格式的解析性能直接影响系统响应速度与吞吐量。当处理高并发请求或大规模数据转换时&#xff0c;解析工具的选择尤为关键。本文通过JMH&#xff08;Java Microbenchmark Harness&#xff09;基准测试框架&#xf…

Go语言动态数据访问实战

Go语言反射实战&#xff1a;动态访问商品数据中的复杂字段 前言 在电商或仓储管理系统中&#xff0c;商品信息结构复杂且经常变化。比如商品有基本属性&#xff08;ID、名称、类型&#xff09;&#xff0c;还有动态扩展属性&#xff08;规格、促销信息、库存详情等&#xff0…

[特殊字符] Excel 按月筛选 + 工作表复制 + 样式批量处理 —— Python 自动化大汇总

本教程展示如何使用 Python 的 openpyxl 实现&#xff1a; 多工作表遍历&#xff1a;自动查找每月物料表&#xff1b; 条件筛选&#xff1a;获取 G 列数量大于 1000 的记录&#xff1b; 生成汇总表&#xff1a;从模板复制页面并写入筛选结果&#xff1b; 统一样式&#xff1…

Text2SQL主流实现方案

目录 基于 Prompt Engineering 的方案 基于模型微调的方案 T5 模型结构 MIGA 基于RAG 的方案 参考 基于 Prompt Engineering 的方案 这类方案比较简单粗暴,就是通过精心设计的提示来引导 LLM 生成 SQL,一般包含下面这些做法: 1. 零样本提示:直接向 LLM 提供数据库…

有哪些开源的SSO框架?

SSO&#xff08;Single Sign-On&#xff09;是一种身份验证机制&#xff0c;允许用户通过一次登录访问多个相互信任的系统或应用&#xff0c;无需重复输入凭证。核心目标是提升用户体验和安全性&#xff0c;减少密码疲劳和管理成本。​一、常见开源SSO框架概览​开源SSO框架主要…

LoRA 问答微调与部署全流程:基于 LLaMA-Factory + DeepSeek + FastAPI 打造专属大模型

想快速掌握大模型落地实战&#xff1f;本文将手把手教你完成一个国产大模型的微调任务&#xff0c;并通过 FastAPI 向后端暴露接口。特别适合希望快速将大模型应用于实际业务的开发者。 &#x1f4cc; 本文为《LoRA 应用实录》系列第 3 篇&#xff0c;在第一篇里讲解了LoRA在 …

分布式部署下如何做接口防抖---使用分布式锁

防抖也即防重复提交&#xff0c;那么如何确定两次接口就是重复的呢&#xff1f;首先&#xff0c;我们需要给这两次接口的调用加一个时间间隔&#xff0c;大于这个时间间隔的一定不是重复提交&#xff1b;其次&#xff0c;两次请求提交的参数比对&#xff0c;不一定要全部参数&a…

【Java工程师面试全攻略】Day10:系统性能优化全链路实践

一、性能优化的多维视角 系统性能优化是区分普通开发者与高级工程师的关键能力指标。根据Google的研究&#xff0c;性能优化带来的用户体验改善可以直接转化为商业收益——页面加载时间每减少100ms&#xff0c;亚马逊的销售额就增加1%。今天我们将从全链路视角剖析性能优化的方…

在kotlin中如何更好的理解 高阶函数

在 Kotlin 中&#xff0c;高阶函数的本质是「将函数作为商品流通的交易模式」。 核心需求&#xff1a;传统函数只能操作数据&#xff08;如数字、字符串&#xff09;&#xff0c;但实际开发中常需复用逻辑流程&#xff08;如「先校验参数&#xff0c;再执行操作」的流程适用于…

15-C#的scottplot控件库绘制曲线图

C#的scottplot控件库绘制曲线图 1.使用Nuget 安装scottplot控件库2.绘制柱状图private void button54_Click(object sender, EventArgs e){double[] values { 5, 10, 7, 13, 22, 18, 33, 16 };formsPlot1.Plot.Add.Bars(values);formsPlot1.Refresh();}3.中文标题显示问题 for…

使用jiaminghi/data-view-react, 本地调试能显示,发布就不显示|不成功(版本冲突)

你遇到的问题是&#xff1a; 使用 jiaminghi/data-view-react&#xff08;也就是 DataV 可视化组件库&#xff09;&#xff0c;本地调试没问题&#xff0c;但发布后打包上线却不显示图表/组件。 ✅ 常见原因&#xff08;很大概率命中&#xff09; 1. CSS 或字体资源路径丢失 …

网络层:ip协议 与数据链路层

目录 网络层 引子与前置知识 一、协议格式 二、网段划分(重要) 三、特殊的IP地址 四、IP地址的数量限制 五、私有IP地址和公网IP地址 六、理解运营商和全球网络 七、路由 八、协议格式补充 数据链路层 一、以太网帧格式 二、局域网的通信原理 三、认识MTU 四、…

Nginx入门进阶:从零到高手的实战指南

Nginx 入门与进阶玩法指南 一、什么是 Nginx&#xff1f; Nginx&#xff08;Engine X&#xff09;是一个高性能的 HTTP 和反向代理服务器&#xff0c;同时也可以作为 IMAP/POP3/SMTP 邮件代理服务器。它最初由俄罗斯程序员 Igor Sysoev 开发&#xff0c;用于解决高并发下 Apa…

NPM组件 alan-baileys 等窃取主机敏感信息

【高危】NPM组件 alan-baileys 等窃取主机敏感信息 漏洞描述 当用户安装受影响版本的 alan-baileys 组件包时会窃取用户的主机名、用户名、工作目录、IP地址等信息并发送到攻击者可控的服务器地址。 MPS编号MPS-wkyd-5v7r处置建议强烈建议修复发现时间2025-07-02投毒仓库npm…

Python爬虫实战:研究httplib2库相关技术

1. 引言 1.1 研究背景与意义 随着互联网的快速发展,网络上的信息量呈爆炸式增长。如何从海量的网页中高效地获取有价值的数据,成为了当前信息技术领域的一个重要研究课题。网络爬虫作为一种自动获取互联网信息的程序,能够按照一定的规则,自动地抓取网页内容并提取和整理信…

【C++】简单学——模板初阶

模板&#xff08;template&#xff09; 泛型编程&#xff0c;让编译器把我们不想干的事情给干了 类似于typedef&#xff0c;解决了typedef使用不方便地原因&#xff08;虽然看似写少了&#xff0c;其实只是编译器做多了&#xff09; 例如&#xff1a; 生成两个栈&#xff0c;…

X-Search:Spring AI实现的AI智能搜索

X-Search AI智能搜索 X-Search使用Spring AI和Spring AI Alibab Graph实现的AI智能搜索系统。 gitee:https://gitee.com/java-ben/x-search github:https://github.com/renpengben/x-search 核心功能 快速开始 git clone https://github.com/renpengben/x-search.git 1.申请…

一台香港原生ip站群服务器多少钱?

一台香港原生ip站群服务器多少钱&#xff1f;在香港地区租用原生 IP 站群服务器的价格受多重因素影响&#xff0c;不同配置和服务的组合会导致费用差异显著。以下是详细分析&#xff1a;一、影响香港原生 IP 站群服务器价格的核心因素IP 资源成本&#xff1a;原生 IP 由于其注册…