我正在开发必须获得经度和纬度的应用程序。在我的情况下,requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener)
不在选项中。为什么?因为我必须在用户需要执行某项操作时才获取位置(假设他点击了按钮)。当按钮被按下时,我需要准确地定位时间。在requestLocationUpdates
中,我们可以设置minTime-如果我将其设置为30000,则“按钮点击时间”的位置将不如我想要的好。由于同样的原因,minDistance也不如我想要的那样好。如果我的函数requestLocationUpdates
正确-当minTime和minDistance设置为0时,位置将一直更新。如果我错了,请纠正我。该应用程序适用于我正在工作的公司,该应用程序将在白天和晚上使用。因此,如果应用会一直检查位置更新,则电池电量通常会耗尽。这就是为什么我仅在需要位置时才按下该按钮的原因。我发现requestSingleUpdate功能。但是我不能在eclipse =(中使用它,因为它不存在。
还有其他方法可以做到吗?还是我错过了什么?
最佳答案
您可以使用getLastKnownLocation方法,但是它可能已过期。由于GPS需要“热身”才能找到新位置,因此requestLocationUpdates是异步的。
从api级别9开始,requestSingleUpdate方法可用,但是您可以使用requestLocationUpdates来实现它,并在第一次回调LocationListener之后禁用更新。