首先,我告诉您这个问题解决了我的一部分问题,但不是全部问题:
Emulator's Location simulation not working
我设法让模拟器的位置提供商工作(使用Google地图应用验证它)但是我的React Native应用程序是没有获取该位置的应用程序。它在一个真实的设备上,所以我会说它更多的是应用程序和模拟器之间的问题。
正如我所说,我在谷歌地图应用程序中获取此位置:
My Emulator规格:
我在React App中所做的工作如下:
在React异步操作中:(在真实设备上工作)
return navigator.geolocation.getCurrentPosition(
(position) => {
let initialCenterPosition = {
latitude : position.coords.latitude,
longitude : position.coords.longitude
}
dispatch(requestInitialCenterPositionSuccess(initialCenterPosition))
},
(error) => {
dispatch(requestInitialCenterPositionError(error))
},
{enableHighAccuracy: true, timeout: 10000, maximumAge: 0}
)
我的Android Manifest XML中的当前权限以防万一:
<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" />
build.graddle文件中的My Sdk和Build Tools版本:
compileSdkVersion 23
buildToolsVersion "23.0.3"
还使用builtToolsVersion测试它:&#34; 24.0.2&#34;
在getCurrentPosition函数中将enableHighAccuracy切换为false不会做任何更改。
我的React Native应用程序规范中是否还有其他方面需要注意,这样可行吗?我觉得在真实设备上没有任何问题似乎很奇怪
感谢所有
答案 0 :(得分:0)
设置为enableHighAccuracy false,问题将解决
{enableHighAccuracy: false, timeout: 10000, maximumAge: 0}