在 IOS 中一切正常,但当尝试获取用户当前位置时,expo-location 总是返回相同的错误且不准确的位置。
这是我的代码:
const location = await getCurrentPositionAsync( {
accuracy: Accuracy.Balanced
distanceInterval: 100,
timeInterval: 1000 * 120 // 2min as MS
} )
console.log( location )
// output
{"coords": {"accuracy": 2000, "altitude": 0, "altitudeAccuracy": 0, "heading": 0, "latitude": xxx, "longitude": xxx, "speed": 0}, "mocked": false, "timestamp": 1690919435627}
我已经尝试过的事情:
Accuracy.High
或 Accuracy.Highest
node_modules
、.expo
和 android
文件夹并重建应用程序timeInterval
和 distanceInterval
getLastKnownPositionAsync({ maxAge: 1000 * 120, requiredAccuracy: 100 })
我注意到的一件事是
latitude
和 longitude
始终相同,它们在任何时刻都没有改变。在 IOS 中,这些值会按照预期行为发生变化。
我还有什么遗漏的吗?感谢您的帮助
我发现我缺少在 expo app.config.js 中添加
ACCESS_FINE_LOCATION
:
expo: {
...
android: {
permissions: [
...,
'ACCESS_FINE_LOCATION'
]
}
}
添加此行并运行后
expo prebuild
一切开始正常工作。
我仍然遇到这个问题,有人可以帮忙吗?我在尼日利亚,但定位在美国。