2011-03-30 81 views
1

我即将开始使用位置服务,但有一个关于如何在Android中使用GPS接收器的一般问题。在设备上启用GPS时,它是否立即生效(即获得卫星修复)还是仅在应用程序请求位置更新时才激活?一般安卓GPS行为

我问的原因是因为我对各种个人GPS装置的使用经验是,当你第一次激活它们时,在它被锁定之前还有一段相当长的时间滞后,并且知道它在哪里(我的Garmin Forerunner可以采用有时需要几分钟才能修复)。

那么Android如何获得最初的GPS锁定,并且即使应用程序仅获取位置相隔几分钟,它也能保持该锁定?在第一个位置通知之前,应用程序通常会经历很大的时间滞后吗?

回答

0

获得GPS修正确实需要一些时间。我相信设备之间的确切时间会有所不同,但这不是几分钟的时间。通常在我的使用中有几秒钟 - 无论是在Google地图还是我的应用程序中。

只有在您明确请求它们时,才会在您的应用中获得GPS更新。更新的频率取决于初始化LocationListener时使用的参数。如果您已经开启了GPS,然后启动了您的应用程序,那么这个过程会更快。

如果您想立即开始并且不想等待确切的修复,您还可以获取最新的已知最佳估计值。

0

我不知道这是否是独立于你正在使用而Android应该表现得像该设备:

如果GPS已启用,这并不意味着这是真的在使用中。启用仅意味着它可以被应用程序或其他使用。所以你的假设是真的,接收信号需要一些时间。但是,在我的设备(HTC Desire)上,这通常会很快完成。但有时我也注意到花了2-3分钟。但我认为这取决于设备,天气状况,环境(例如靠近大型建筑物)以及最后但并非最不重要的宇宙辐射。

我认为最好的解决方案是使用GPSStatusListener来检查您连接的卫星数量并检查第一个修复程序。

0

GPS功能与其他任何GPS功能相同,因为采集卫星的滞后时间或等待时间(通常为三个或更多)是相同的。等待时间取决于你距上一个地点有多远> 400英里,它对每颗卫星都是视线。

至于GPS更新您的应用程序。阅读有关LocationManager.requestLocationUpdates的信息。您将控制如何以及何时更新您的位置以及如何使用位置服务。 GPS的行为与其他任何一样,只要记住电池和Android中定位的时间是主要关注的问题。您希望您的应用程序能够快速响应,并且在锁定和更新方面使用GPS可能会很慢。

0

我一直在开发的手机的经验是,如果GPS功能先前被关闭,初始修复确实需要一些时间。但是,一旦找到修复,它会频繁触发onlocationchange事件。

+0

准确地说,您应该在您的应用中做其他事情,以便用户不会等待您的GPS锁 – apesa 2011-03-30 22:43:30

+0

作为apesa评论的后续,“搜索修复”消息是一件好事。我的应用程序作为服务运行,所以他们不需要看到;) – Sorean 2011-03-30 22:45:26