走过地理围栏不会触发

Geofences Not Triggered By Walking Through Them

当用户终止应用程序时,我会在用户的最后位置周围创建一个地理围栏,以便在用户离开该位置时通知我。

CLRegion *workingGeoFence = [[CLCircularRegion alloc] initWithCenter:CLLocationCoordinate2DMake(lastLocation.coordinate.longitude, lastLocation.coordinate.latitude) radius:80.4672 identifier:@"centered"];


workingGeoFence.notifyOnExit = YES;
workingGeoFence.notifyOnEntry = NO;

[locationManager startMonitoringForRegion:workingGeoFence];

我正在调用上述方法以响应此通知:

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enterTerminatedMode) name:UIApplicationWillTerminateNotification object:nil]; 

然后我等了几分钟,直接走出地理围栏,穿过边界继续直行……地理围栏一直没有触发。

这仅适用于 GPS 设备,仅供参考。

由于地理围栏是为响应 UIApplicationWillTerminateNotification 而创建的,locationManager:didStartMonitoringForRegion: 在应用程序终止之前永远没有机会被调用。但是在调用 startMonitoringForRegion: 之后,地理围栏确实出现在 monitoredRegions 属性.

使用始终授权,并在前台和后台模式下成功收集位置。

这可能与它有关吗?...

"Region events may not happen immediately after a region boundary is crossed. To prevent spurious notifications, iOS doesn’t deliver region notifications until certain threshold conditions are met. Specifically, the user’s location must cross the region boundary, move away from the boundary by a minimum distance, and remain at that minimum distance for at least 20 seconds before the notifications are reported."

更多失败的测试

我在进入和退出时激活通知,然后创建同心地理围栏(见图。我走过每个地理围栏,有一两次停下来一分钟然后继续。

然后走了大约一英里远,回来走进每一个,回到中心……什么也没有。请注意进入或退出时的单个触发器。

我只是不明白地理围栏实施如何不能涵盖这些活动..

我用 wifi 试过了 on/off。

我还尝试打开另一个在启动时收集 GPS 位置的应用程序。仍然没有触发。我以为 Apple 在所有应用程序中共享这些精确位置?

我的猜测是他们只使用更改小区 ID?

不确定还可以尝试什么。

顺序是 (lat, lon) NOT (lon, lat)!!!!!!