0

我一直在尝试查找每 5 分钟获得的位置GPS_Provider以及Network_Provider在任何特定时间获得的两个值的同一时间戳。

我尝试使用以下给定的位置策略

LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);

// Define a listener that responds to location updates
LocationListener locationListener = new LocationListener() {
    public void onLocationChanged(Location location) {
      // Called when a new location is found by the network location provider.
      makeUseOfNewLocation(location);
    }

    public void onStatusChanged(String provider, int status, Bundle extras) {}

    public void onProviderEnabled(String provider) {}

    public void onProviderDisabled(String provider) {}
  };

// Register the listener with the Location Manager to receive location updates
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 300000, 0, locationListener)
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,300000, 0, locationListener)

但是onLocationChanged()如果自上次位置更新以来的时间大于notificationInterval.

GPS_Provider这给我带来了每 5 分钟和之后生成的值之间的一些时间戳差异Network_Provider。有什么方法可以让我找到GPS_ProviderNetwork_Provider在同一时间戳生成的位置。

例子:

现在:GPS_Provider(lat,long) at 09:35:12 , Network_Provider(lat,long) at 09:35:14

我需要:GPS_Provider(lat,long) at 09:35:12 , Network_Provider(lat,long) at 09:35:12

4

1 回答 1

0

简而言之,没有。
位置 api 不能以同步方式工作,这意味着您无法保证何时能准确获得更新。您提供的时间范围表示更新之间的最大间隔。
话虽如此,您可以以较低的间隔(例如 50 毫秒)开始更新并获取一堆更新,按时间戳的第二个对它们进行排序并获取具有相同值的更新。

更新


您可以使用 getLastKnownLocation 方法获取提供者已知的最后位置,请查看此处的文档。

于 2015-04-07T20:30:19.353 回答