Android 存储权限说明 - Android 10 至 14

最后更新 :

Android 的存储权限模型在最近的版本中发生了巨大变化,每次更新都会改变文件管理器可以访问和不能访问的内容。如果您曾经打开文件管理器,却发现文件夹为空、路径无法访问或反复弹出权限对话框,那么您正在经历这些策略更改的实际影响。以下是每个版本中的具体更改以及如何配置 AnExplorer 以维护完整的文件系统访问权限。

简短的回答

在 Android 11 及更高版本上,转到 设置 → 应用程序 → AnExplorer → 权限 → 文件和媒体 → 允许管理所有文件。这将授予恢复完全浏览功能的 MANAGE_EXTERNAL_STORAGE 权限。如果没有它,文件管理器就像其他所有应用程序一样被沙箱化。

Android 存储权限时间线

Android 9 及以下版本 — 开放时代

在 Android 10 之前,存储很简单。应用程序在安装或运行时请求 READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE 权限,一旦获得授予,它们就可以对整个共享存储(每个文件夹、每个文件类型、每个路径)拥有完整的读/写访问权限。文件管理器的工作方式与您期望的桌面文件浏览器的工作方式完全相同。

这很强大,但也带来了安全问题。任何具有存储权限的应用程序都可以不受限制地读取您的照片、文档、下载内容和其他应用程序的导出文件。

Android 10 — 引入分区存储(可选)

Android 10 引入了范围存储这一概念,但让开发人员选择加入。面向 API 29 的应用程序可以在其清单中添加 requestLegacyExternalStorage=true 以维持旧的行为。大多数文件管理器都使用此标志,因此用户看不到实际差异。

引入的主要变化: -“应用程序特定的外部存储”的概念(Android/data/[package]/)正式沙箱化

  • MediaStore API 成为访问媒体文件的推荐方式
  • 存储访问框架 (SAF) 对于文档访问变得越来越重要
  • 直接文件路径访问在技术上已被弃用,但仍可使用旧标志

获取 AnExplorer 文件管理器

在任何设备上管理、传输和访问您的文件。

获取应用程序

Android 11 — 强制执行分区存储

Android 11 是转折点。对于面向 API 30+ 的应用程序,requestLegacyExternalStorage 标志停止工作。现在每个应用程序都已默认确定范围。然而,谷歌认识到文件管理器、备份工具和防病毒应用程序确实需要广泛的访问权限,因此他们创建了一个新的权限:

MANAGE_EXTERNAL_STORAGE —“所有文件访问”权限。这是一项特殊许可:

  • 必须在应用清单中声明
  • 要求用户手动导航到“设置”才能授予它(无法通过简单的运行时对话框授予)
  • 必须在 Play 商店审核期间向 Google 证明合理性
  • 授予对除 Android/data/Android/obb/ 目录之外的所有共享存储的访问权限

当 AnExplorer 请求此权限时,您会看到一个系统屏幕,要求您切换“允许管理所有文件”。这不是错误或越权——这是文件管理器在 Android 11+ 上正常运行的唯一方法。

Android 12 — 小幅改进

Android 12 没有大幅改变存储权限,但添加了:

  • 影响文件传输功能的附近设备权限
  • 照片选择器的工作方式略有变化
  • 更好地执行包可见性规则(应用程序无法在不声明查询的情况下查看其他应用程序安装的内容)

对于文件管理器功能,Android 12 的行为与 Android 11 相同。

Android 13 — 精细的媒体权限

Android 13 将旧的 READ_EXTERNAL_STORAGE 拆分为三个独立的权限:

  • READ_MEDIA_IMAGES — 访问照片和图像
  • READ_MEDIA_VIDEO — 访问视频文件
  • READ_MEDIA_AUDIO — 访问音乐和音频文件

应用程序现在仅请求它们实际需要的媒体类型。音乐播放器仅要求音频;照片编辑器仅要求图像。具有所有文件访问权限的文件管理器完全绕过这些细粒度权限,因为 MANAGE_EXTERNAL_STORAGE 已经涵盖了所有内容。

Android 13 还完全阻止第三方通过存储访问框架访问Android/data/。以前,您可以使用 SAF 向 Android/data/ 授予文件夹访问权限 - 该解决方法已被关闭。

获取 AnExplorer 文件管理器

在任何设备上管理、传输和访问您的文件。

获取应用程序

Android 14 — 访问选定的照片

Android 14 引入了最面向用户的变化:当应用请求照片访问权限时,用户现在可以选择“选择照片和视频”,而不是授予对所有媒体的访问权限。这意味着:

  • 该应用程序只能看到用户选择的特定文件
  • 用户可以稍后在“设置”中修改他们的选择
  • 应用程序必须妥善处理部分访问

对于具有所有文件访问权限的文件管理器,这并不适用 - MANAGE_EXTERNAL_STORAGE 仍然提供完整的媒体可见性。但如果您没有授予所有文件访问权限,您可能会发现AnExplorer只能看到您明确选择的文件。

Android 14还推出了:

  • 基于凭证的企业管理文件访问
  • 通过云提供商集成改进照片选择器
  • 对后台文件访问的更严格限制

存储访问框架 (SAF) 的工作原理

当文件管理器缺乏所有文件访问权限时,存储访问框架将成为后备机制。SAF 通过系统级文档选择器工作:

  1. 应用调用ACTION_OPEN_DOCUMENT_TREE请求访问文件夹
  2. Android 会显示一个系统文件选择器,您可以在其中导航到所需的文件夹
  3. 点击“使用此文件夹”并点击“允许”确认
  4. 应用程序收到该特定文件夹及其所有内容的持久 URI 授权
  5. 该补助金在应用程序重新启动和手机重新启动后仍然有效

SAF 授予功能强大但乏味 — 您必须分别手动授予每个文件夹。当“所有文件访问”不可用或访问特定受保护路径时,AnExplorer 使用 SAF 作为后备。

SAF 限制

  • 无法在 Android 13+ 上授予对内部存储根目录的访问权限
  • 无法在 Android 13+ 上访问 Android/data/
  • 无法在 Android 13+ 上访问Android/obb/
  • 性能明显慢于直接文件访问(操作通过内容提供商)
  • 通过 SAF 执行某些操作(例如递归文件夹操作)要慢得多

配置 AnExplorer 以获得最大访问权限

为了在所有 Android 版本上获得最佳体验:

  1. 授予所有文件访问权限:设置 → 应用程序 → AnExplorer → 权限 → 文件和媒体 → 允许管理所有文件
  2. 授予通知权限 (Android 13+):显示传输进度所需
  3. 禁用电池优化:设置 → 应用程序 → AnExplorer → 电池 → 无限制(防止操作系统终止后台操作)
  4. 授予 SAF 对 Android/数据的访问权限(仅限 Android 11-12):当 AnExplorer 提示文件夹访问 Android/数据时,点击“使用此文件夹”→“允许”

获取 AnExplorer 文件管理器

在任何设备上管理、传输和访问您的文件。

获取应用程序

哪些内容没有 root 就无法访问

即使授予所有文件访问权限,某些路径仍会被 Android 的安全模型阻止:

路径为什么被阻止另类
/data/data/应用程序沙箱(内核强制)ADB 或 root 访问权限
/data/user/0/同上,多用户格式ADB 或 root 访问权限
Android/data/(Android 13+)操作系统策略块来自 PC、ADB 或 root 的 USB MTP
Android/obb/(Android 13+)操作系统策略块来自 PC、ADB 或 root 的 USB MTP
/system/只读分区重新挂载root

权限问题故障排除

尽管授予所有文件访问权限,但“权限被拒绝”

  1. 强行停止AnExplorer并重新打开它
  2. 撤销权限并重新授予
  3. 检查您是否授予了“所有文件”而不仅仅是“仅限媒体”(某些设备显示这两个选项)
  4. 重启手机——某些权限授予需要重启才能生效

几天后权限不断重置

Android 12+会自动撤销您最近(通常是3个月)未使用的应用程序的权限。为了防止这种情况:

  • 设置 → 应用程序 → AnExplorer → 权限 → 关闭“如果不使用应用程序则删除权限”
  • 或者只是偶尔打开AnExplorer以使其保持“活跃”状态

尽管有权限,应用程序仍显示空文件夹

这通常表明应用程序正在从缓存/过时的目录列表中读取。下拉以刷新,或导航出并返回到文件夹。如果问题仍然存在,请清除 AnExplorer 的缓存(设置 → 应用程序 → AnExplorer → 存储 → 清除缓存)。

相关指南

获取 AnExplorer 文件管理器

在任何设备上管理、传输和访问您的文件。

获取应用程序

常见问题

版权 © DWorkS 2011 – 2026 版权所有