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

Android开发:可跨应用访问且卸载不丢失的文件存储推荐方案

Android多文件存储方案(满足卸载保留、跨应用访问)

推荐存储位置

Android 10及以上(API ≥29)

  • 系统公共目录:优先选择Download、Documents、Pictures等系统预设的公共文件夹。API 29及以上推荐通过MediaStore API操作这些目录中的文件;若需要更灵活的位置选择,使用**存储访问框架(SAF)**让用户自主指定存储路径,兼容性和灵活性更好。
  • 注意:Environment.getExternalStoragePublicDirectory()方法已被标记为废弃,不推荐继续使用。

Android 9及以下(API ≤28)

  • 直接使用外部存储公共目录,通过Environment.getExternalStoragePublicDirectory()获取对应目录,比如Environment.DIRECTORY_DOWNLOADS(下载目录)、Environment.DIRECTORY_DOCUMENTS(文档目录)。

所需权限

Android 10及以上(API ≥29)

  • 若通过MediaStore写入公共媒体目录(如Pictures),无需申请WRITE_EXTERNAL_STORAGE权限;若需读取其他应用的公共文件,需在Manifest中声明READ_EXTERNAL_STORAGE,并在运行时动态申请(Android 13及以上,读取媒体文件需分别申请READ_MEDIA_IMAGES、READ_MEDIA_VIDEO、READ_MEDIA_AUDIO)。
  • 若使用SAF,无需申请任何存储权限,通过Intent唤起系统文件选择器,用户授权后即可完成文件操作。
  • Android 11及以上,非媒体类文件仅允许写入Download公共目录,其他非媒体目录需通过SAF操作。

Android 9及以下(API ≤28)

  • 必须申请WRITE_EXTERNAL_STORAGE权限(申请该权限后会自动获得READ_EXTERNAL_STORAGE权限),这属于危险权限,需在Manifest中声明并在运行时动态申请用户授权。

关键注意事项

  • 避免使用应用私有外部存储(getExternalFilesDir()),该目录会随应用卸载被删除,不符合“卸载后保留”的要求。
  • 公共目录下的文件默认支持其他应用访问(需对方应用拥有对应读取权限),SAF授权的路径也支持跨应用访问。

内容的提问来源于stack exchange,提问作者Anirudh Kachroo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:22:43