【问题标题】:Update location only if location changes仅在位置更改时更新位置
【发布时间】:2016-06-01 15:08:18
【问题描述】:

目前我使用下一个函数来处理位置变化

locationManager.requestLocationUpdates(bestProvider, (60000), 1000, (LocationListener) this); 

但问题是系统将等待检查位置是否更改的最短时间(以毫秒为单位),直到时间过去,在我的情况下为 60000 毫秒。

我的问题是,如果用户在不使用任何等待时间的情况下移动了一定距离(以米为单位),是否有任何方法使 onLocation 更改仅触发?

谢谢。

【问题讨论】:

    标签: android android-studio gps location


    【解决方案1】:

    您可以使用推荐的 FusedLocationProviderApi 代替 LocationManager(它应该更准确并提供更好的电池性能),您可以在 LocationRequest 上设置一些过滤器,作为位置查询的参数。具体来说,您会对这种方法感兴趣:

    setSmallestDisplacement()

    这就是你想要的。 还要检查:setPriority()setInterval()setFastestInterval() 等。

    您可以将它们组合使用,如下所示:

    private void startLocationUpdates() {
        final LocationRequest locationRequest = LocationRequest.create().setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY).setInterval(LOCATION_UPDATE_INTERVAL)
            .setFastestInterval(LOCATION_UPDATE_FASTEST_INTERVAL).setSmallestDisplacement(LOCATION_UPDATE_SMALLEST_DISPLACEMENT_METERS);
        LocationServices.FusedLocationApi.requestLocationUpdates(googleApiClient, locationRequest, locationListener);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多