如何从 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 推送通知中取消订阅(删除监听器)

如何使用 expo-image-picker 将文件从 iOS 上传到 Cloudinary?

如何将我的应用程序从 expo 弹出到裸反应本机代码

Expo大作战--expo如何使用Genymotion模拟器