【发布时间】:2014-05-05 04:10:23
【问题描述】:
我正在尝试根据 GPS 或网络获取位置,但问题是,如果我根据 GPS 位置进行获取,则需要花费大量时间来获取位置详细信息。因此,我想实现一种方法,如果 GPS 信号非常低,则使用网络提供商获取位置。如何确定 GPS 信号?如果这有问题吗? GPS 信号即使在开阔的天空中也总是很低,因此它总是会到达网络提供商?
我该如何解决这个问题?
【问题讨论】:
标签: android networking gps
我正在尝试根据 GPS 或网络获取位置,但问题是,如果我根据 GPS 位置进行获取,则需要花费大量时间来获取位置详细信息。因此,我想实现一种方法,如果 GPS 信号非常低,则使用网络提供商获取位置。如何确定 GPS 信号?如果这有问题吗? GPS 信号即使在开阔的天空中也总是很低,因此它总是会到达网络提供商?
我该如何解决这个问题?
【问题讨论】:
标签: android networking gps
您是使用 LocationManager.GetLastKnownLocation 轮询位置,还是通过 requestLocationUpdates 异步获取更新?
首先,使用 GPS_PROVIDER 查询位置。如果返回null,则查询NETWORK_PROVIDER
如果您收到通知,请同时请求。然后您可以实现 onStatusChanged 来判断 GPS 何时可用,如果可用则忽略网络更新,如果不可用则使用它们(位置对象告诉您提供者是什么)。
【讨论】:
添加 lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, ll);它将开始使用网络获取 gps。使用 location.getProvider() 您应该能够区分它是 gps 还是网络。
【讨论】: