这是一种非常奇怪的行为。如果我有这样的事情(时间间隔设置为30分钟):
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,30 * 60 * 1000,100,mLocationListener);
我的第一个修复需要永远,有时我根本没有得到它(我等了大约20分钟)但是如果我选择一个较小的时间间隔(30秒),我马上得到它。
我认为值minTime和minDistance仅用于获取新的连续更新,并且它不会影响第一个修复。我应该尽快得到第一个修复。我做错了吗?
由于
答案 0 :(得分:1)
我建议使用两个locationManagers,一个用于长期更新,另一个用于获得第一个修复。然后,一旦从中获得回调,您就可以取消注册第二个。 我从Reto Meier那里听说过这种模式,它被称为“后退”位置。我们正在使用它与粗略的位置管理器混合以获得第一个修复,并使用GPS来获得更精确的信息。您可以在此处查看代码:https://github.com/mixare/mixare/blob/master/src/org/mixare/MixContext.java从第150行开始(或多或少)
HTH, 丹尼尔
答案 1 :(得分:0)
如果众所周知的第三方GPS工具(如GPS Status)也存在问题,或者您的代码存在问题,可以查看。
请记住,卫星可见性 - 以及GPS信号质量 - 可能会迅速改变,几天内的首次修复可能需要比平常更长的时间。