【发布时间】:2010-06-25 17:57:03
【问题描述】:
我的应用会在特定时间检查用户是否在给定位置。我使用警报管理器来启动进行此调用的服务:
locationManager.requestLocationUpdates(bestProvider, 0, 0, listener);
并且还检查:
locationManager.getLastKnownLocation(bestProvider);
但我在真实设备上运行时遇到问题。一方面,getLastKnownLocation 很可能是 GPS 的最后一个位置,它可能在任何地方(即,它可能距离用户当前位置数英里)。所以我会等待requestLocationUpdates 回调,如果他们在两分钟内不存在,请移除侦听器并放弃,对吗?
错了,因为如果用户的位置已经稳定(即他们最近使用了 GPS 并且没有移动),那么我的监听器将永远不会被调用,因为位置不会改变。但是 GPS 会一直运行,直到我的监听器被移除,耗尽电池...
在不将旧位置误认为当前位置的情况下,获取当前位置的正确方法是什么?我不介意等几分钟。
编辑:我可能错了没有调用听众,这可能比我想象的要长一点......很难说。我仍然希望得到一个明确的答案。
【问题讨论】:
标签: android geolocation gps