我写了一个应用程序,它可以在慢跑时跟踪 gps 位置。不幸的是,该应用程序需要一些时间才能获得 GPS 信号。当我打开谷歌地图等其他应用程序时,他们会立即获得位置。
我的问题是:如何实现 gps-provider,以便应用尽快获得信号。
一个想法是,使用应用程序启动服务,以便提供商做一些初步工作。但是跟踪 Activity 不是主要 Activity 。如何将服务绑定(bind)到尚未启动服务的 Activity 中?这是个好主意吗?
感谢阅读 - 我希望我的英语是可以理解的,
马提尼
Best Answer-推荐答案 strong>
正如我在评论中提到的,GPS 启动不是一个即时过程。接收器基本上必须知道星座中每个 GPS 卫星的位置,才能计算出它的位置。 ephemeris data 描述了接收到的卫星位置,并在 GPS 打开时从卫星上下载(我差点忘了提及 almanac data,它也是下载的一部分,并描述了卫星的轨道)。诸如从多颗卫星下载和使用最后一个已知位置等可以帮助加快这个初始过程,但你不能让它“立即”。
还有其他策略可用于帮助加快定位过程,尤其是在手机中。除了最后已知的位置之外,当 GPS 仍在获取过程中时,可以使用蜂窝塔 + 定时定位 (ECID) 或 Wi-Fi 定位等代替 GPS。
这个 link描述了一些关于如何在android中处理定位手机的想法,但简短的是:
- 检查最后一个已知位置(如果太旧则丢弃)
- 检查 E-CID 位置(这非常快,但非常粗略
位置)
- 检查 Wi-Fi 位置(这可以非常准确,但需要打开 WiFi,有时可能会出现大量错误)
- 最终获得 GPS 位置
关于Android - 获得 GPS 信号需要很长时间。如何实现一个好的 GPS 提供者?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/12017546/
|