android - gps位置的帮助

时间:2012-07-29 15:46:10

标签: android gps

在我的android程序中,我在请求gps时设置了最小时间和最小距离。但是,当我开始收听时,有时只会发生'onLocationChanged'动作。

如果我停止聆听然后开始聆听,是否会将新gps的值与过去的gps值进行比较?我开始听的时候是否需要以某种方式清除它?

注意:测试时我在同一个位置。

2 个答案:

答案 0 :(得分:0)

使用getLastKnownLocation来使用最后的已知位置。

答案 1 :(得分:0)

以此为例:

LocationManager loc = (LocationManager)this.getSystemService(
    Context.LOCATION_SERVICE
);
loc.requestLocationUpdates(
    LocationManager.GPS_PROVIDER, 2000, 10, locationListener
);

处理onLocationChanged()的{​​{1}} - 方法将在以下时间调用:

  • 自上次更新以来至少至少 10米
  • 自上次更新
  • 以来至少传递了

requestLocationUpdates()-method的文档提供了更多信息:

  

[...] 位置更新之间经过的时间永远不会更少   比LocationListener ,虽然它可能更多取决于位置   提供程序实现和其他请求的更新间隔   应用

     

[...] minTime参数也可用于控制   位置更新的频率。 如果大于0那么   位置提供商只会在发送时向您的应用程序发送更新   位置已更改至少 minDistance米,AND 至少   minDistance毫秒已过。

此外,它还包含以下信息:

  

在Jellybean之前,minTime参数只是一个提示,还有一些   位置提供程序实现忽略它。 来自Jellybean和   此外,Android兼容设备必须同时观察这两者   minTime和minDistance参数。

这只是一种节省电池的机制,您不需要自己做任何事情,除此之外为这两个参数选择合适的值。