Android - 获取GPS信号需要很长时间。如何实现一个优秀的GPS提供商?

时间:2012-08-18 09:43:21

标签: android gps location-provider

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

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

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

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

2 个答案:

答案 0 :(得分:8)

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

还有其他策略可用于帮助加快定位过程,尤其是在手机中。除了最后已知的位置之外,在GPS仍处于采集过程中时,可以使用Cell Tower + Timing positioning(ECID)或Wi-Fi定位等代替GPS。

这个link描述了如何处理在android中定位手机的一些想法,但缺点是:

  • 检查最后的已知位置(如果太旧则丢弃)
  • 检查E-CID位置(这非常快,但非常粗糙 位置)
  • 检查Wi-Fi位置(此可以非常准确,但需要启用WiFi,有时会出现大量错误)
  • 最终获得GPS位置

答案 1 :(得分:2)

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