我已按如下方式配置了locationManager。
_locationManager = [[CLLocationManager alloc] init];
[_locationManager setDelegate:self];
[_locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[_locationManager setDistanceFilter:kCLDistanceFilterNone];
当应用程序运行时,我会从委托方法获得一些更新。 当我不改变位置,并且移动设备静止约2小时后,我在前10分钟内收到大约10-12个更新,然后停止接收更新。
据我所知, desiredAccuracy 是指设备将继续尝试越来越精确的方法来获取当前位置的时间。因此,在我的情况下,需要大约10分钟才能获得所需的准确度。
我想确认这是否属实。还有一种方法可以让我获得定期的位置更新,即使设备没有移动吗?
答案 0 :(得分:5)
如果位置未更改,您为什么会期望更新位置?
如果您想定期刷新搜索结果,请使用自己创建的NSTimer
。
当设备获得具有误差幅度的位置时
期望的准确性,它将停止要求更准确的结果。如果设备移动,那么它将再次开始询问,直到它再次获得所需精度的位置。
如果您指定的精确度为10米,那么您几乎肯定会依赖GPS - 手机信号塔,并且wifi通常不那么准确。
要确定设备是否已移动,它会使用距离过滤器 - 通过将此设置为无,您要求它始终精确到最接近的10米 - 这可能会耗尽电池电量;)< / p>