如何从 expo requestLegacyExternalStorage 中删除权限
Posted
技术标签:
【中文标题】如何从 expo requestLegacyExternalStorage 中删除权限【英文标题】:how to delete from expo requestLegacyExternalStorage permission 【发布时间】:2021-07-14 04:55:17 【问题描述】:如何删除 requestLegacyExternalStorage 权限和谷歌播放的后台位置
【问题讨论】:
【参考方案1】:Expo 和 React Native 模块默认包含一些权限。
如果您的应用不需要这些权限,只需在您的 app.json
文件中添加:android.permissions: []
。就这样:
"android":
"permissions": [],
// ...
如果您的应用中的某些功能确实需要一些权限,请在此处查看您应该添加哪一项:https://docs.expo.io/versions/latest/config/app/#permissions
另一个有用的提示:尝试upgrading your expo 到最新的 SDK。在 SDK 40 之后,一些权限变为选择加入而不是选择退出。
【讨论】:
【参考方案2】:基于 Android 开发者版本,Android 11 中的存储更新可更好地保护外部存储上的应用和用户数据。 https://developer.android.com/about/versions/11/privacy/storage
将您的应用更新到 SDK 41 以面向 Android 11 后,系统会忽略 requestLegacyExternalStorage 标志,无需执行任何操作,只需忽略此警告即可。
对于 SDK 40 及以下版本(针对 Android 11 之前),Expo 包括 AndroidManifest 中的 requestLegacyExternalStorage 以便选择 正如 Google 文档所建议的那样,排除这些存储更改。
对于 SDK 41 及更高版本(针对 Android 11 之后),Expo 已更新 库来解释这些存储更改,如建议的那样 Google 文档,仍然包括 requestLegacyExternalStorage, 正如谷歌在他们的文档中所说的那样。
如果没有更新的可能性,解决方案是从您的应用清单中删除 MANAGE_EXTERNAL_STORAGE 权限,以便成功发布您的应用。
【讨论】:
以上是关于如何从 expo requestLegacyExternalStorage 中删除权限的主要内容,如果未能解决你的问题,请参考以下文章
如何从 expo requestLegacyExternalStorage 中删除权限
如何从弹出的 Expo 项目中删除“android.hardware.location”权限请求?
如何从 React Native Expo 推送通知中取消订阅(删除监听器)