我正在使用區域監視在用戶退出區域時運行某些代碼。當應用程序在前臺或後臺運行時,locationManger:didExitRegion:
上的設備屏幕按預期方式調用。但是,當屏幕關閉時,我通常不會得到回調,直到我打開屏幕時,通過單擊電源按鈕,立即調用locationManger:didExitRegion:
。所有的測試都是在iPhone 5s上完成的。locationManager:didExitRegion:屏幕關閉時未調用
下面是如何設置的區域:
self.monitoredRegion = [self setupGeoFenceWithCenter:self.currentLocation radius:200];
[self.locationManager startMonitoringForRegion:self.monitoredRegion];
-(CLRegion *)setupGeoFenceWithCenter:(CLLocation *)center radius:(CGFloat)radius
{
if (radius > self.locationManager.maximumRegionMonitoringDistance)
{
radius = self.locationManager.maximumRegionMonitoringDistance;
}
CLRegion * region = [[CLCircularRegion alloc] initWithCenter:center.coordinate
radius:radius
identifier:@"geofence"];
return region;
}
這裏的委託回調:
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region
{
NSLog(@"Exited Region");
}
這裏的CLLocationManager
初始化:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
另外,最近我注意到, locationManager:monitoringDidFailForRegion:withError:
方法越來越多地被調用荷蘭國際集團的錯誤描述:
錯誤域= kCLErrorDomain代碼= 5「的操作無法 完成。 (kCLErrorDomain錯誤5)」
但即使有這樣的錯誤,當應用程序在它按預期工作的前景。 這是對區域的監控預期的行爲?有沒有其他人遇到這個?難道這是我得到錯誤的結果
感謝
我是testi使用iOS模擬器的Freeway驅動器模擬。我的代表從未被稱爲..任何想法?我已經設置了委託,並且CLLocationManager對象也保留了下來...... – Nil