一般 Android GPS 行为
Posted
技术标签:
【中文标题】一般 Android GPS 行为【英文标题】:General Android GPS Behavior 【发布时间】:2011-07-26 11:34:19 【问题描述】:我即将开始使用定位服务,但有一个关于如何在 android 中使用 GPS 接收器的一般性问题。在设备上启用 GPS 后,它是立即激活(即获取卫星定位)还是仅在应用程序请求位置更新时才激活?
我问的原因是因为我使用各种个人 GPS 装置的经验是,当您第一次激活它们时,它会被锁定并弄清楚它在哪里(我的 Garmin Forerunner 可能需要一个有时需要几分钟来修复)。
那么,Android 是如何获得初始 GPS 锁定的,即使应用仅在几分钟之内获取位置更新,它能否保持该锁定?应用在第一个位置通知之前通常会经历很大的时间延迟吗?
【问题讨论】:
【参考方案1】:获取 GPS 定位确实需要一些时间。我相信设备之间的确切时间会有所不同,但这不是几分钟。在我的使用中通常需要几秒钟 - 在 Google 地图和我的应用中。
只有当您明确请求 GPS 更新时,您才会在应用中获得这些更新。更新频率取决于初始化 LocationListener 的参数。如果您保持 GPS 开启,然后启动您的应用程序,则此过程会更快。
如果您想立即开始并且不想等待确切的修复,也可以获取最后已知的最佳估计。
【讨论】:
【参考方案2】:我不知道这是否与您使用的设备无关,但 Android 的行为应该是这样的:
如果启用了 GPS,这并不意味着它确实在使用。启用仅意味着它可以被应用程序或其他任何东西使用。所以你的假设是正确的,接收信号需要一些时间。但是在我的设备(HTC Desire)上,这通常很快就完成了。但有时我也注意到它需要 2-3 分钟。但我认为这取决于设备、天气条件、您的环境(例如靠近大型建筑物)以及最后但并非最不重要的宇宙辐射。
我认为最好的解决方案是使用GPSStatusListener 来检查您连接了多少卫星并检查第一次修复。
【讨论】:
【参考方案3】:GPS 功能与其他功能相同,因为获取卫星的延迟时间或等待时间通常相同,通常是三个或更多。等待时间取决于您距离上一个位置的距离 > 400 英里,以及到每颗卫星的视线。
就 GPS 更新您的应用而言。阅读有关 LocationManager.requestLocationUpdates 的信息。您将控制更新位置的方式和时间以及使用位置服务的方式。 GPS 的行为与其他 GPS 一样,只需记住电池和在 Android 中定位的时间是主要问题。您会希望您的应用程序能够快速响应,并且在锁定和更新方面使用 GPS 可能会很慢。
【讨论】:
【参考方案4】:我使用我一直在开发的手机的经验是,如果之前关闭 GPS 功能,初始修复确实需要一些时间。但是,一旦找到修复程序,它就会非常频繁地触发 onlocationchange 事件。
【讨论】:
没错,您应该在您的应用程序中执行其他操作,这样用户就不会等待您的 GPS 锁定 作为 apesa 评论的跟进,“正在搜索修复”消息是一个很好的展示方式。我的应用程序作为服务运行,所以他们不需要看到;)以上是关于一般 Android GPS 行为的主要内容,如果未能解决你的问题,请参考以下文章