如何获得未过期的位置?

时间:2011-10-26 05:13:09

标签: android geolocation gps

启用GPS后,GPS准备就绪需要一些时间。因此,使用此代码可能会获得一个过时的位置: location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 我不能使用过时的位置。我怎样才能获得我需要的位置?

这是一个类似的问题: Android: getLastKnownLocation out-of-date - how to force location refresh?

从中,我可以使用LocationListener来获取更新的位置,该位置应该不会过时。这是正确的。但是我该如何处理这种情况:

我已启用GPS,然后启动我的应用。如果我留在一个地方但不动,则不会调用onLocationChanged()。所以我不能用这个方法判断getLastKnownLocation()的返回值是不是已经过时了?

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

  

如何获取未过期的位置?

您使用minTime为1000毫秒来调用requestLocationUpdates(),对于Location中的每个onLocationChanged(),您都会调用getAccuracy()。如果准确性可以接受,请致电removeUpdates()

  

所以我不能用这个方法来判断getLastKnownLocation()的返回值是不是已经过时了

我认为它返回的Location对象将包含time stamp。您可以设置现在与位置getTime()

之间的时差的容差

答案 1 :(得分:1)

每个Location对象都有一个getTime()方法,它返回修复的时间。您可以使用它来确定修复的时间。