2014-03-02 3 views
1

사용자가 지역을 벗어날 때 일부 코드를 실행하기 위해 지역 모니터링을 사용하고 있습니다. 앱이 전경이나 배경에서 기기의 화면이 locationManger:didExitRegion: 인 상태로 실행될 때 예상대로 호출됩니다. 그러나 화면이 꺼져있을 때는 즉시 locationManger:didExitRegion:이라는 전원 버튼을 클릭하여 화면을 켤 때까지 콜백을받지 못합니다. 모든 테스트는 iPhone 5에서 수행되었습니다.locationManager : didExitRegion : 화면이 꺼져있을 때 호출되지 않습니다.

다음
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region 
{ 
    NSLog(@"Exited Region"); 
} 

CLLocationManager 초기화입니다 : 여기

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; 
} 

대리자 콜백입니다 : 여기

내가 지역 설정 방법 또한

self.locationManager = [[CLLocationManager alloc] init]; 
self.locationManager.delegate = self; 
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation; 
self.locationManager.distanceFilter = kCLDistanceFilterNone; 

를, 최근에 나는 것으로 나타났습니다 locationManager:monitoringDidFailForRegion:withError: 메서드는 다음과 같이 자주 호출됩니다. 오류 설명 :

오류 도메인 = kCLErrorDomain 코드 = 5 "작업을 완료 할 수 없습니다. . 다른 사람이이 발생했습니다 (kCLErrorDomain 오류 5) " 은 지역 모니터링이 예상되는 동작입니다 응용 프로그램이 예상대로 작동 전경에있을 때.

그러나 심지어이 오류로,?이 될 수 있을까 오류 내가지고있어 결과가

감사

+0

나는 testi입니다. iOS 시뮬레이터의 Freeway 드라이브 시뮬레이션과 함께 사용하십시오. 내 대의원들은 절대로 .. 어떤 생각이라도? 대리자를 설정하고 CLLocationManager 개체도 유지됩니다 ... – Nil

답변

-1

는 (15-4) 몇 분을 기다리고 시도 했 PS는?!?. 앱 전에의 iDevice을 끄고 전경에 있어야이를 기반으로 iBeacon 테스트 ... 귀하의 케이스에서 도울 수 있습니다.

+1

4-15 분이 지나치게 보입니다. 문서에 기록되어 있습니까? 또한 앱이 포 그라운드에 있어야한다고하는 이유는 무엇입니까? Apple에 따르면 앱이 종료 되더라도 지역 경계를 넘으면 앱이 실행되고 알림을받습니다. – Gad

관련 문제