本地getCurrentPosition无法通过GPS位置在Android上运行

时间:2019-03-21 15:08:48

标签: android react-native geolocation

我正在构建一个本机应用程序,并且正在使用navigator.geolocation.getCurrentPosition。一切在iOS上都运行良好,但在Android上则更加复杂...

getLocation(){
    //console.log(this.state.geolocation);
    navigator.geolocation.getCurrentPosition(
     position => {
       const latitude = position.coords.latitude.toFixed(8);
       const longitude = position.coords.longitude.toFixed(8);
       this.setState(prevState => ({
         geolocation: {
             ...prevState.geolocation,
             latitude: parseFloat(latitude),
             longitude: parseFloat(longitude)
         }
     })) 
     },
     error => console.log(error.message),
      {enableHighAccuracy: true, timeout: 30000, maximumAge: 1000}
   )
 }

如果我禁用highAccuracy,则一切正常,但是根据我在本机Geolocation文档上的红色描述,将enableHighAccuracy设置为true会使用GPS定位,这就是我所需要的,当我将其设置为true时,它不会位置,它只是忽略了我的功能,我得到的纬度和经度为null,但没有错误。 我已经在手机上启用了高精度定位功能,并且拥有android所需的权限:android:name =“ android.permission.ACCESS_FINE_LOCATION”。

此外,我正在使用的手机仅用于测试,没有任何SIM卡。但是我认为获取GPS位置不是问题吗?

我有点迷路,我想念什么吗?还有其他我没看到的事情吗?

[编辑]

我也在使用此权限:

async requestLocationPermission() {
    try {
      const granted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        {
          'title': 'Location Access Permission',
          'message': 'app would like to use your location '
        }
      )
      if (granted === PermissionsAndroid.RESULTS.GRANTED) {
        console.log("You can use the location")
      } else {
        console.log("Location permission denied")
      }
    } catch (err) {
      console.warn(err)
    }
  }

0 个答案:

没有答案