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

Android 11外部存储根目录下mkdirs()返回false问题咨询

问题现象

mkdirs()方法在Android 11系统上运行异常,在Android 10及更低版本的系统上所有功能表现正常。

对应的测试代码如下:

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/My_directory/";
File temp_file = new File(path);
if (!temp_file.exists()) {
    Boolean can_create = temp_file.mkdir();
}

代码执行的实际表现:在Android 10及更低版本上执行时,目录创建操作返回成功;在Android 11上执行时,目录创建操作返回失败。

已完成的适配排查
  • Manifest配置中已添加完整的存储相关权限:
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
  • 已经完成上述两个权限的动态运行时申请流程,应用已获得对应的存储权限授权
  • 在Manifest的application节点中已经配置android:requestLegacyExternalStorage="true"属性
  • 当前测试发现,仅能通过getExternalFilesDir()路径正常向外部存储写入数据,但该路径不属于外部存储根目录;查阅官方存储适配规则、参考社区技术解答后获知,系统当前已经限制应用在外部存储根目录创建文件夹的能力。
待解答问题
  1. Android 11系统下,是否完全禁止应用在外部存储根目录创建任意文件夹?是否存在合规的变通实现方案?
  2. 若确实无法在外部存储根目录创建文件夹,除getExternalFilesDir()路径外,Android 11环境下有哪些合规的外部存储数据保存方案?
  3. 已经配置的android:requestLegacyExternalStorage="true"属性为什么没有生效?

内容的提问来源于stack exchange,提问作者صلي علي محمد - Atef Farouk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 03:06:03