清单中的请求旧版外部存储权限 - Google Play 控制台 5 月 5 日消息

Posted

技术标签:

【中文标题】清单中的请求旧版外部存储权限 - Google Play 控制台 5 月 5 日消息【英文标题】:Requestlegacyexternalstorage permission in Manifest - Google Play Console 5 May Message 【发布时间】:2021-07-24 01:45:15 【问题描述】:

我在开发者控制台中收到了来自 Google 的消息。

从 5 月 5 日开始,您必须让我们知道为什么您的应用需要广泛 存储访问

我们检测到您的应用包含 清单文件中的 requestLegacyExternalStorage 标志,或者 更多您的 app bundle 或 APK。在设备上使用应用程序的开发人员 运行 android 11+ 必须使用范围存储来为用户提供更好的 对其设备存储的访问控制。发布您的应用程序 5 月 5 日之后的 Android 11 或更高版本,您必须:

更新您的应用以使用对隐私更友好的最佳做法,例如存储访问框架或 Media Store API 更新您的应用以在清单文件中声明所有文件访问 (MANAGE_EXTERNAL_STORAGE) 权限,并且 在 Play 管理中心完成所有文件访问权限声明 从 5 月 5 日起 从您的应用中完全移除所有文件访问权限

对于面向 Android 11 的应用,requestLegacyExternalStorage 标志将 被忽略。您必须使用所有文件访问权限才能保留 广泛的访问。请求访问所有文件访问权限的应用 未经允许使用的许可将从 Google Play 中删除, 并且您将无法发布更新。

我们应该怎么做才能遵守这项政策?如果我们不对 APK 进行任何修改会怎样?

我的应用的 TargetSDK 是 29。这不是问题吗?如果我不进行任何修改,我的应用会从 Google Play 中删除吗?

谷歌怎么说?

a) “如果您的应用程序目标为 29 或更低,则没问题。您无需进行任何修改,您可以继续使用 requestlegacyexternalstorage。对我们来说,如果您的应用程序目标为 30(Android 11),这一点很重要。如果您的应用程序目标 29 或更低,即使您未在清单中进行任何更改,您的应用也会生效,但如果您想要目标 30,则必须将其删除(并使用其他方法获得用户许可)"

b) “即使您的应用面向 29 或更低版本,您也必须更改清单。从清单中删除 requestLegacyExternalStorage,否则我们会将您的应用从 Google Play 中删除。”

哪一个是正确的?谷歌怎么说? a 还是 b?

如果 b 是正确的,我应该怎么做?我对图库中的图像使用此权限,而不是所有文件。

【问题讨论】:

【参考方案1】:

为了尽可能清楚,如果你的目标是 API 29 的目标 sdk 版本,你现在不需要做任何事情,但你必须在 8 月 - 11 月做,这是截止日期在您的应用程序中更改此权限,因为它也是针对 SDK 30 的强制性要求,如果您不想立即更改 sdk 和存储权限,请在您的清单文件中保留 requestLegacyExternalStorageflag = true。

所有应用的硬性截止日期是 8 月 - 11 月,因为那时所有应用的 targetSDK = 30 是强制性的,与此相关,Android SDK 30 上有一个 change in the privacy policy 强制更改此权限,这就是它的原因现在只是一个警告。但是,如果您现在什么都不做,直到 8 月到 11 月,您的应用都不会发生任何事情。

【讨论】:

能否添加指向隐私政策更改的链接? 这是第一个“所有文件访问权限”,关于更新的一切都可以在这里找到:support.google.com/googleplay/android-developer/answer/… 如果我们在运行时请求 WRITE_EXTERNAL_STORAGE 怎么办?(从 Manifest 中移除)是否违反 Google Play 政策? 我会做同样的事情,因为您请求相同的权限并且 Google 的隐私政策谈论权限,而不是他们在哪里请求。但这基于我个人的观点,而不是谷歌的官方信息,这有点主观。

以上是关于清单中的请求旧版外部存储权限 - Google Play 控制台 5 月 5 日消息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用api 14显示权限请求

Google Play 通知 - 外部存储权限 - 2021 年 5 月 5 日之前

即使设置了权限,也无法写入 Android 外部存储

将 Android 11 中的文件保存到外部存储(SDK 30)

无法为Google云端硬盘创建令牌目录

如何获得读取外部存储权限?