5

我写了一个应用程序,可以在慢跑时跟踪 gps 位置。不幸的是,该应用程序需要一些时间才能获得 GPS 信号。当我打开谷歌地图等其他应用程序时,他们会立即获得位置。

我的问题是:如何实现 gps-provider,以便应用程序尽快获得信号。

一个想法是,使用应用程序启动服务,以便提供商做一些初步工作。但是跟踪活动不是主要活动。如何将服务绑定到尚未启动服务的活动中?这是一个好主意吗?

感谢阅读 - 我希望我的英语是可以理解的,

马提尼

4

2 回答 2

9

正如我在评论中提到的,GPS 启动不是一个即时过程。接收器基本上必须知道星座中每个 GPS 卫星的位置,才能计算出它的位置。星历数据描述了接收到的卫星位置,并在打开 GPS 时从卫星上下载(我差点忘了提到历书数据,这也是下载的一部分,描述了卫星的轨道) . 从多颗卫星下载和使用最后一个已知位置可以帮助加快这个初始过程,但你不能让它“即时”。

还有其他策略可用于帮助加快定位过程,尤其是在手机中。除了最后已知的位置外,当 GPS 仍在获取过程中时,可以使用蜂窝塔 + 定时定位 (ECID) 或 Wi-Fi 定位等代替 GPS。

这个链接描述了一些关于如何在android中处理定位手机的想法,但它的短处是:

  • 检查最后一个已知位置(如果它太旧则丢弃)
  • 检查 E-CID 位置(这非常快,但位置非常粗略)
  • 检查 Wi-Fi 位置(这可能非常准确,但需要打开 WiFi,有时会出现大量错误)
  • 最终获得GPS位置
于 2012-08-18T11:07:59.173 回答
2

您是否首先检查是否有可以使用的最后一个已知位置?大多数应用程序首先检查它,然后搜索一个位置。

于 2012-08-18T09:45:09.320 回答