Bri*_*yle 6 iphone geolocation wifi ios geofencing
我的代码在我的iPhone上创建了一个地理围栏,它会在调用didExitRegion时触发一些代码.但是,我发现当我关闭WiFi时,didExitRegion永远不会被触发.是否需要WiFi来监控iOS上的区域变化?我想要的准确度设置为kCLLocationAccuracyHundredMeters.我正在测试iOS 6.1和iPhone 4.
以下是我设置位置监控的代码:
- (id)init {
self = [super init];
if (self) {
CLLocationManager *manager = [[CLLocationManager alloc] init];
manager.delegate = self;
manager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
manager.distanceFilter = RADIUS/10.0;
manager.headingFilter = kCLHeadingFilterNone;
self.locationManager = manager;
self.authorizationStatus = [CLLocationManager authorizationStatus];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
谢谢
gav*_*net 11
iOS设备使用三种方法来发现用户位置.从(通常)最准确到最不准确它们是:
如果您的应用不使用GPS或未运行(即先前已经终止),设备将尝试使用上述方法2和3来定位用户.因此,设备定位用户的能力(当GPS硬件未使用或GPS信号较弱时)取决于wifi网络和手机信号塔的可用性.wifi网络和蜂窝塔越多,定位精度越高.因此,当用户进入或离开被监视区域(即,穿过"地理围栏")时,如果有的话,则不可能准确地预测用户何时将接收到通知.(当然,如果所讨论的区域始终相同,则设备将或多或少地在每种情况下以相同的准确度定位用户).
以下是位置感知编程指南中的相关文档:
特定阈值距离由当前可用的硬件和定位技术确定.例如,如果禁用Wi-Fi,则区域监控的准确性要低得多.但是,出于测试目的,您可以假设最小距离约为200米.
因此,区域监控不需要wifi工作,但启用后,您的设备将有更好的机会确定用户是否已跨越区域的地理围栏.
| 归档时间: |
|
| 查看次数: |
6097 次 |
| 最近记录: |