You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android 11与Android 9存储权限是否有差异?Delphi开发应用适配问题咨询

Delphi Sydney开发Android应用在10/11系统运行失败(存储权限相关)根因说明

前提:应用可在Android 9正常运行,已在IDE配置基础存储权限

问题核心触发点是Android 10(API 29)引入的分区存储机制,Android 11(API 30)对该机制做了强制落地,旧版权限规则完全失效,具体原因分为以下几类:

  • 旧版存储权限已被限制:你在IDE中配置的READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE权限,在Android 10+系统中仅能访问应用专属沙盒目录、以及公共媒体目录下由当前应用创建的文件,访问其他目录直接返回权限拒绝
  • 未添加Android 10兼容标识:Android 10系统允许应用临时绕过分区存储限制,只需要在项目的AndroidManifest.xml文件的application节点中添加android:requestLegacyExternalStorage="true"属性即可沿用旧版存储逻辑,多数Delphi开发者遇到的都是未添加该属性的问题
  • Android 11强制分区存储限制:requestLegacyExternalStorage兼容属性在Android 11上完全失效,如果你需要访问公共目录下的非自有文件,必须新增申请MANAGE_EXTERNAL_STORAGE特殊权限,该权限无法通过普通动态权限弹窗申请,需要引导用户手动跳转系统设置页开启
  • Delphi Sydney生成配置适配缺陷:部分版本的Delphi Sydney的Android构建模板未适配API 29+规则,你在IDE可视化界面配置的权限不会自动写入Manifest的对应节点,需要手动修改项目的Manifest模板文件生效
  • 动态权限申请逻辑未更新:Android 10+的存储权限申请回调、权限状态判断逻辑和Android 9及更早系统存在差异,沿用旧版权限申请代码会出现「权限申请返回成功但实际无访问权限」的异常

内容的提问来源于stack exchange,提问作者Djamel Merad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:24:01