我正在使用 CLLocationManager 的 startMonitoringForRegion:desiredAccuracy:
监控一个区域。我确信该区域已正确添加到位置管理器的 monitoredRegions 中。
我设置它时我的模拟器位置设置得离它很远(准确地说是 2.3 公里)。然后我按下主页按钮,并将模拟器的位置更改为我为其设置地理围栏的位置。 locationManager:didEnterRegion:
没有被调用。如果我尝试从 4.3 公里外的另一个位置移动到这个位置,结果相同。
似乎有一些我无法接受的阈值,因为 locationManager:didEnterRegion: 在从 7 公里及以上的其他位置移动时被调用。 但是我的 CLRegion 的半径是 100 m。这可能是什么问题?
最佳答案
这确实只是一个大胆的猜测,但我想知道这是否是位置管理器试图通过看似跳跃的位置来减少误报的结果。我想在应用程序退出时更改模拟器中的位置可能会在位置管理器看来是不符合所需精度的位置更新,因此在考虑您是否实际进入新区域时忽略它。
您是否尝试过模拟城市自行车骑行或高速公路驾驶,看看它们是否有所不同?我只想尽快在设备上进行测试。
关于iphone - 位置管理器 :didEnterRegion: only getting called when moving from certain locations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11624429/