世博会位置在 Android 上总是返回错误且不准确的位置

问题描述 投票:0回答:2

在 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 中,这些值会按照预期行为发生变化。

我还有什么遗漏的吗?感谢您的帮助

react-native expo geolocation
2个回答
0
投票

我发现我缺少在 expo app.config.js 中添加

ACCESS_FINE_LOCATION

expo: {
  ...
  android: {
    permissions: [
      ...,
      'ACCESS_FINE_LOCATION'
    ]
  }
}

添加此行并运行后

expo prebuild
一切开始正常工作。


-1
投票

我仍然遇到这个问题,有人可以帮忙吗?我在尼日利亚,但定位在美国。

© www.soinside.com 2019 - 2024. All rights reserved.