启用GPS后,GPS准备就绪需要一些时间。因此,使用此代码可能会获得一个过时的位置: location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 我不能使用过时的位置。我怎样才能获得我需要的位置?
这是一个类似的问题: Android: getLastKnownLocation out-of-date - how to force location refresh?
从中,我可以使用LocationListener来获取更新的位置,该位置应该不会过时。这是正确的。但是我该如何处理这种情况:
我已启用GPS,然后启动我的应用。如果我留在一个地方但不动,则不会调用onLocationChanged()。所以我不能用这个方法判断getLastKnownLocation()的返回值是不是已经过时了?
有什么想法吗?
答案 0 :(得分:1)
如何获取未过期的位置?
您使用minTime为1000毫秒来调用requestLocationUpdates()
,对于Location
中的每个onLocationChanged()
,您都会调用getAccuracy()
。如果准确性可以接受,请致电removeUpdates()
。
所以我不能用这个方法来判断getLastKnownLocation()的返回值是不是已经过时了
我认为它返回的Location对象将包含time stamp。您可以设置现在与位置getTime()
答案 1 :(得分:1)
每个Location
对象都有一个getTime()
方法,它返回修复的时间。您可以使用它来确定修复的时间。