对Android返回本地缓存的位置做出反应

时间:2020-08-01 11:24:24

标签: android react-native geolocation

我从“ react-native-geolocation-service”库中使用了Geolocation,详细信息如下。我的移动应用程序在很大程度上取决于位置(地理坐标),因此必须正确获取纬度/经度。我面临的问题是android正在返回缓存的位置。我已在代码中删除了maximumAge参数,但仍然在android中获取了缓存的经久。有没有一种方法可以始终使用此库在React Native中从android中的GPS获取当前位置?任何帮助表示赞赏。谢谢。

AndoidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />


Location.js:
import Geolocation from 'react-native-geolocation-service';

  getCoordinates = () => {
    Geolocation.getCurrentPosition(
      position => {
        this.setState({
          latitude: position.coords.latitude,
          longitude: position.coords.longitude,
        });
      },
      error => {
      }, { enableHighAccuracy: true, timeout: 15000 },
    )
  };

1 个答案:

答案 0 :(得分:1)

如果您不提供任何参数,那么它将使用该参数的默认值。因此,在本例中,您删除了 maximumAge 参数,根据 this doc,该参数的默认值为 INFINITY

因此,尝试在选项中传递 maximumAge: 0,它将提供如下新坐标:

getCoordinates = () => {
    Geolocation.getCurrentPosition(
      position => {
        this.setState({
          latitude: position.coords.latitude,
          longitude: position.coords.longitude,
        });
      },
      error => {
      }, { enableHighAccuracy: true, timeout: 15000, maximumAge: 0 },
    )
  };