【问题标题】:How to remove "android.hardware.location" permission request from ejected Expo project?如何从弹出的 Expo 项目中删除“android.hardware.location”权限请求?
【发布时间】:2020-05-17 05:34:47
【问题描述】:

我有一个 React Native Expo 项目,它开始使用 Expo“托管工作流”。然而,从那以后,我退出了托管工作流程(同时仍在使用一些 expo 模块)。

我遇到的问题是 Expo 似乎向我的 Android 应用添加了任意权限请求。 我必须从应用程序中删除此特定权限请求:android.hardware.location

我尝试了很多方法在我的AndroidManifest.xml 文件中删除它,例如:

<uses-permission tools:node="remove" android:name="LOCATION_HARDWARE" />
<uses-permission tools:node="remove" android:name="ACCESS_COARSE_LOCATION" />
<uses-permission tools:node="remove" android:name="ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location" android:required="false" tools:node="remove" />

但最终捆绑的Android应用仍然请求android.hardware.location权限。

如何在捆绑应用之前将其删除?

【问题讨论】:

  • 此问题已通过从 package.json 中删除 expo 依赖关系得到解决。 expo 依赖需要 expo-location,而 expo-location 又请求各种 android 位置权限。

标签: react-native expo android-permissions


【解决方案1】:

为了排除 expo 自动添加的任何权限,根据 expo documentation,您只需将 tools:node="remove" 添加到您的清单权限元素中。现在,如果您想删除位置权限,这应该可以解决您的问题:

<manifest ... xmlns:tools="http://schemas.android.com/tools">
 ...
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" tools:node="remove" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" tools:node="remove" />
 ...
</manifest>

通过添加这些,硬件位置权限也应该消失。 不要忘记将 tools 命名空间添加到清单的根元素中

【讨论】:

    【解决方案2】:

    此问题已通过从 package.json 中删除 expo 依赖项得到解决。

    expo 依赖项需要 expo-location,而 expo-location 又请求各种 android 位置权限。

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多