我正在尝试获取基于GPS或网络的位置,但问题是如果我采用基于GPS位置,则需要大量时间来获取位置详细信息。因此,我想实现一种方法,其中如果使用网络提供商GPS信号是非常低的获取位置。如何确定GPS信号?如果这有问题吗?即使在开阔的天空,GPS信号也始终很低,因此它总能到达网络提供商?
如何解决此问题?
答案 0 :(得分:0)
您是使用LocationManager.GetLastKnownLocation轮询位置,还是通过requestLocationUpdates异步获取更新?
首先,使用GPS_PROVIDER查询位置。如果返回null,则查询NETWORK_PROVIDER
如果您收到通知,请同时请求。然后你可以实现onStatusChanged以告知GPS何时可用,如果是,则忽略网络更新,否则使用它们(位置对象告诉你提供者是什么)。
答案 1 :(得分:0)
添加lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,0,0,ll);它将开始使用networ获取gps。使用location.getProvider(),你应该能够区分它是否知道它的gps或网络。