如何在Android中每分钟获得gps坐标?

时间:2011-01-04 15:12:06

标签: java android gps

我希望每分钟都能得到我的坐标,即使用户没有移动。所以我使用requestLocationUpdates和以下参数:

  locMgr.requestLocationUpdates(
                    LocationManager.GPS_PROVIDER,
                    60000,      // minTime in ms
                    0,      // minDistance in meters
                    PosljiLokacijo.this);

但是当我在我的HTC Hero(2.1 Android)上测试并且我没有移动时,onLocationChanged()从未被调用过。如果我将minDistance更改为1,那么我会在开始时获得一些更新但在此之后,它们会以非常不规则的间隔出现。

我应该如何选择这两个参数(minTime和minDistance)来每分钟接收坐标?

2 个答案:

答案 0 :(得分:1)

根据文件:

minTime通知的最小时间间隔,以毫秒为单位。此字段仅用作节省电量的提示,位置更新之间的实际时间可能大于或小于此值。

我看到你想做的唯一方法是将minTime设置为0并抛出过于频繁的值。您仍然无法保证您可以随时获得更新,并为您的应用做好电池杀手的准备。

答案 1 :(得分:1)

我不认为“minTime”或“minDistance”在这种情况下会有所帮助,除非:将最后一个位置保存到变量中并每分钟输出一次。让locationManager覆盖这些变量,一分钟后,位置变化变得可见。这样就不需要等待更新,因为变量总是保持实际位置。

您也可以从locationManager检索位置,并在一分钟后(或您想要的间隔时间)再次请求该位置,而不使用requestLocationUpdates

e.g。看一下Timer设置重复调用获取位置的方法:
http://developer.android.com/reference/java/util/Timer.html

这样你也可以省电,因为系统不会一直在寻找更新。