Android react native can';无法从蜂窝网络中找到位置

Android react native can';无法从蜂窝网络中找到位置,android,react-native,android-gps,Android,React Native,Android Gps,我试图在react native中的android设备(android 7.0)上获取用户在纬度和经度上的位置。当我打开gps时,它会毫无问题地找到位置,但如果我想从wifi或Cell网络获取位置,并且gps关闭,它会给我错误“无位置提供商可用” 我在android清单中拥有此权限,并在应用程序中动态检查它们: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission andr

我试图在react native中的android设备(android 7.0)上获取用户在纬度和经度上的位置。当我打开gps时,它会毫无问题地找到位置,但如果我想从wifi或Cell网络获取位置,并且gps关闭,它会给我错误“无位置提供商可用”

我在android清单中拥有此权限,并在应用程序中动态检查它们:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

根据谷歌安卓的支持

如果您关闭设备的位置,则任何应用都无法使用您的设备 设备位置

因此,应该打开位置服务来确定设备位置

关于使用
启用高精度:正确或错误

谷歌安卓系统支持部发布的消息

定位服务有三种模式,设备所有者可以选择其中任何一种模式

高精度此模式使用GPS、Wi-Fi、移动网络和传感器获得最高精度的位置。它使用谷歌的 定位服务可帮助您更快、更准确地估计设备的位置 更准确地说

节省电池此模式使用较少电池的电源,如Wi-Fi和移动网络。它使用谷歌的定位服务来帮助用户 更快更准确地估计设备的位置

仅限设备此模式仅使用GPS。它不使用谷歌的定位服务来提供位置信息。它可以估计 您的设备的位置较慢,并使用更多电池

上述模式是在Android API 23中添加的(最有可能),因此在API=23时,用户选择的模式将决定您获得的精度

在iOS上,用户的行为也是一样的,只是用户没有明确的模式选项,比如Android

TL,DR:无论您使用Wifi、网络或GPS系统,都应打开定位服务以确定当前位置(iOS或Android)

一些有用的链接:


谢谢你,回答得很好!