如何从弹出的Expo项目中删除“ android.hardware.location”权限请求?

时间:2020-01-31 14:23:34

标签: react-native expo android-permissions

我有一个使用Expo“托管工作流程”开始的React Native 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权限。

在捆绑应用程序之前如何删除它?

2 个答案:

答案 0 :(得分:0)

要排除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名称空间

答案 1 :(得分:-2)

通过从expo删除package.json依赖关系解决了此问题。

expo依赖项需要expo-location,这反过来又要求各种android位置权限。