2026-10-13 · Permissions & API

Google Play 的 MANAGE_EXTERNAL_STORAGE(所有文件访问)权限政策——Google Play 为何限制 All files access、政策实际适用于哪些应用(任何 target Android 11 / API 级别 30 且声明 MANAGE_EXTERNAL_STORAGE 的应用)、为何不需要该权限的应用必须先从清单里移除才能通过政策审核、Play Console 里权限声明表(Permissions Declaration Form)的强制要求、七类被允许的用途(文件管理、备份与恢复、杀毒、文档管理、本机搜索、磁盘/文件夹加密锁定、换机迁移)以及为何每一类都仍需 Play 审核批准、核心功能(core functionality)的判定标准与必须在商店描述中显著说明的义务、临时例外(exception)的三个条件与声明中必须给出的理由、Google 已明确不接受的用途(媒体文件访问、用户手动挑选单个文件的一次性选择)、可替代它的隐私友好方案(MediaStore API、Storage Access Framework、照片选择器)各自到底能拿到什么、权限获批后真正解锁的范围(共享存储、/sdcard/Android/media、MediaStore.Files、OTG 与 SD 卡根目录,以及仍然碰不到的目录)、如何在不破坏用户数据的前提下从 requestLegacyExternalStorage 与旧存储路径迁移到分区存储(scoped storage)、Android 11 / 12 那些会打断旧文件访问方式的行为变更(外部存储上不能再自建 app-specific 目录、/Android/data)与 getExternalFilesDirs() 的替代写法、用于测试的兼容性开关(DEFAULT_SCOPED_STORAGE、FORCE_ENABLE_SCOPED_STORAGE)、未获批准却继续保留该权限会发生什么(下架、暂停、开发者账号终止),以及应用对该权限的使用方式发生变化后必须重新提交什么(2026)

1. 这条政策到底是什么。Google Play 把「所有文件访问」(All files access)当作高风险的特殊应用访问权限来管。政策原文:"Google Play restricts the use of high-risk or sensitive permissions, including special app access called All files access. This is only applicable to apps that target Android 11 (API level 30) and declare the MANAGE_EXTERNAL_STORAGE permission, which is added in Android 11. Also, this policy does not impact the usage of the READ_EXTERNAL_STORAGE permission."(https://support.google.com/googleplay/android-developer/answer/10467955)

2. 不需要就该从清单里删掉。这是因权限被审核驳回时最常见、也最直接的处理方式:"If your app does not require access to the MANAGE_EXTERNAL_STORAGE permission, you must remove it from your app's manifest in order to successfully meet the policy review requirements. Details on policy-compliant alternative implementations are also enumerated below."(https://support.google.com/googleplay/android-developer/answer/10467955)

3. 确实需要的话,声明是强制的——不声明本身就是违规。"If your app meets the policy requirements for acceptable use or is eligible for an exception, you will be required to declare this and any other high-risk permissions using the Permissions Declaration Form in Play Console." 并且:"Apps that fail to meet policy requirements or do not submit a Permissions Declaration Form may be removed from Google Play."(https://support.google.com/googleplay/android-developer/answer/10467955)

4. 门槛是「确实没有可行的替代方案」,不是「这样做更省事」。"You should only access the All files access permission when your app cannot effectively make use of the more privacy-friendly best practices, such as the Storage Access Framework or the MediaStore API. Keep in mind that your app shouldn't declare permissions that it doesn't need or use."(https://support.google.com/googleplay/android-developer/answer/10467955)

5. 「核心功能」由 Google 定义,而且必须写在商店描述里。"Additionally, the app's usage of the permission must fall within permitted uses and must be directly tied to the core functionality of the app. Core functionality is defined as the main purpose of the app. Without this core functionality, the app is "broken" or rendered unusable. The core functionality, as well as any core features that comprise this core functionality, must all be prominently documented and promoted in the app's description." 以及:"When an app's core functionality requires All files access permission, the developer must complete the Permissions Declaration Form and receive approval from Google Play."(https://support.google.com/googleplay/android-developer/answer/10467955)

6. 被允许的用途清单,以及那个星号。"For apps requesting access to the All files access permission, intended and permitted use includes file managers, backup and restore apps, anti-virus apps, and document management apps." 政策表格逐条写明:文件管理("App's core purpose involves the access, editing, and management (including maintenance) of files and folders outside of its app-specific storage space")、备份与恢复("App must have a need to automatically access multiple directories outside of its app-specific storage space for the purpose of backup and restore")、杀毒("App's core purpose is to scan the device and provide anti-virus security features to the device user")、文档管理("Apps that must locate, access, and edit compatible file types outside of their app-specific or shared storage")、本机搜索、磁盘/文件夹加密锁定、换机迁移。每一行都带脚注 "* Subject to Google Play review and approval",并且 "Apps granted access to this permission may not extend its use to undisclosed or invalid purposes."(https://support.google.com/googleplay/android-developer/answer/10467955)

7. 什么情况能拿到「临时例外」。"Google Play may provide a temporary exception to apps that do not qualify as permitted use designated above, when: The use of the permission enables the app's core functionality. There is currently no alternative method to provide the core functionality, or the use of privacy-friendly alternatives (for example, MediaStore API or Storage Access Framework) has a substantially detrimental impact on the critical features of the app that are tied to the core functionality. The impact on user privacy is mitigated by security and privacy best practices." 最后一条责任在你身上:"The developer must justify in their Console declaration why the Storage Access Framework or MediaStore API is not sufficient for their app's purpose."(https://support.google.com/googleplay/android-developer/answer/10467955)

8. Google 已经明确排除的用途。"Below is a list of common use cases that won't be permitted to request the MANAGE_EXTERNAL_STORAGE permission: Media Files access (see Alternatives below); Any File selection activity where the user manually selects individual files (see Alternatives below)." 注意这只是列举:"This list is not exhaustive. For in-depth guidance, refer to the All files access documentation and Scoped storage best practices guidance for developers."(https://support.google.com/googleplay/android-developer/answer/10467955)

9. 两个替代方案,通常已经够用。媒体文件:"With the MediaStore API, apps can contribute and access media that's available on an external storage volume without the need for the access All files permission. With the MediaStore API, users can easily retrieve and update media files. These files remain in the external storage volume on the user's device - even after the app is uninstalled." 由用户挑选的文件:"Developers should consider using Storage Access Framework as the privacy-friendly option for accessing files in shared storage. This framework supports the vast majority of use cases for apps to accomplish a full range of functionality." SAF 还是三者中唯一完全不需要任何系统权限的:"Because the user is involved in selecting the files or directories that your app can access, this mechanism doesn't require any system permissions, and user control and privacy is enhanced."(https://support.google.com/googleplay/android-developer/answer/10467955 / https://developer.android.com/training/data-storage/shared/documents-files)

10. 权限怎么申请,以及它真正解锁了什么。"An app can request all-files access from the user by doing the following: Declare the MANAGE_EXTERNAL_STORAGE permission in the manifest. Use the ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION intent action to direct users to a system settings page... To determine whether your app has been granted the MANAGE_EXTERNAL_STORAGE permission, call Environment.isExternalStorageManager()." 获批后包含:"Read and write access to all files within shared storage"(并注明 "The /sdcard/Android/media directory is part of shared storage")、"Access to the contents of the MediaStore.Files table"、"Access to the root directory of both the USB on-the-go (OTG) drive and the SD card",以及 "Write access to all internal storage directories except /Android/data/, /sdcard/Android, and most subdirectories of /sdcard/Android"。但仍然碰不到别的应用:"Apps that are granted this permission still can't access the app-specific directories that belong to other apps, because these directories appear as subdirectories of Android/data/ on a storage volume."(https://developer.android.com/training/data-storage/manage-all-files)

11. 别把两套机制搞混。持有该权限反而会收窄 SAF 的可见范围:"When you use the Storage Access Framework, however, you can only access a file or directory if you can do so without having the MANAGE_EXTERNAL_STORAGE permission." 也就是说,为「以防万一」而声明的权限,可能把本来能用的路径弄坏。另外在 Android 12(API 31)及以上,同时持有 MANAGE_EXTERNAL_STORAGE 与 QUERY_ALL_PACKAGES 的应用(如文件管理器)可以用 getManageSpaceActivityIntent() 把用户送到另一个应用的自定义空间管理页。(https://developer.android.com/training/data-storage/manage-all-files)

12. 迁移本身:一旦 target Android 11,requestLegacyExternalStorage 立即失效。"Apps that run on Android 11 but target Android 10 (API level 29) can still request the requestLegacyExternalStorage attribute... After you update your app to target Android 11, the system ignores the requestLegacyExternalStorage flag." 所以顺序要排好:"If your app uses the legacy storage model and previously targeted Android 10 or lower, you might be storing data in a directory that your app cannot access when the scoped storage model is enabled. Before you target Android 11, migrate data to a directory that's compatible with scoped storage." 还有两处机械性改动:"Starting in Android 11, apps cannot create their own app-specific directory on external storage. To access the directory that the system provides for your app, call getExternalFilesDirs()." 测试用兼容性开关:"DEFAULT_SCOPED_STORAGE (enabled for all apps by default)" 与 "FORCE_ENABLE_SCOPED_STORAGE (disabled for all apps by default)"。(https://developer.android.com/about/versions/11/privacy/storage)

13. 最贵的错误,是把权限留着而使用方式已经变了。"If you change how your app uses these restricted permissions, you must submit the form again with updated and accurate information. Deceptive and undeclared uses of these permissions may result in a suspension of your app and/or termination of your developer account." 实际含义是:只要有新功能开始触碰广义文件访问,就要重新走一遍声明;而对存储用途很普通的应用(用户挑的文档、照片、导出文件),最省事的路径仍然是直接把 MANAGE_EXTERNAL_STORAGE 从清单里删掉,改用 MediaStore + SAF + 照片选择器。(https://support.google.com/googleplay/android-developer/answer/10467955)

需要专家帮助?联系KappS获取专属解答 →
← 返回FAQ列表