我有一个带有MapView的活动,并按照代码示例中的建议正确实现了LocationListener,LocationSource。
代码有条件地选择GPS或NETWORK提供商,具体取决于哪个可用,GPS优先。
我可以请求位置更新,但代码运行良好,但问题是它不一致。
启用/禁用GPS& amp;位置选项和更改模拟位置,onLocationChanged事件并不总是触发。
使用GPS_PROVIDER时会出现问题 - 通知栏中的GPS图标出现,但没有收到位置更新。
NETWORK_PROVIDER似乎在触发onLocationChanged时更加一致。但在某些情况下,如果设备上启用了GPS,它也不会触发事件。如果在设备上禁用了GPS,并且启用了常规位置,则每次都会触发事件。
我找到获得可靠位置的唯一一致意见是在一小秒超时约1秒后调用_map.getMyLocation()
,以及一个简单的重试循环,因为地图视图有一个初始化的延迟。 / p>
有解决方法吗?
为什么LocationListener的行为如此不一致?