알림 센터 위젯을 쓰고 있는데 위치 정보를 사용해야했습니다. 일반 응용 프로그램에서는 CoreLocation을 사용하며 정상적으로 작동합니다. 그러나 위젯에서 나는 locationServicesEnabled
을 시도했지만 콜백 함수에 가지 않았고 authorizationStatus
은 항상 kCLAuthorizationStatusNotDetermined
이고 승인 설정은 설정 -> 위치 서비스에 표시되지 않았습니다. 이미 클래스에 위임자를 설정했습니다.알림 센터 위젯이 CoreLocation을 사용하지 못했습니다.
시스템의 Yahoo Weather 위젯은 자동으로 위치를 지정할 수 있으며 CoreLocation도 사용하므로 위젯은 위치 서비스를 사용할 수 있습니다.
내 위젯에서 CoreLocation이 작동하지 않는 이유는 무엇입니까?
업데이트 : 2012년 10월 24일 15시 52분
내가 사용하는 개인 API
[CLLocationManager setAuthorizationStatus:YES
forBundle:[NSBundle bundleForClass:self.class]]
이제 설정 -에서 쇼를 설정 권한 부여> 위치 서비스. 알림 센터를 당길 때마다 켜집니다. 그러나 authorizationStatus
은 여전히 kCLAuthorizationStatusNotDetermined
이며 콜백 함수로 이동하지 않습니다.
업데이트 : 위치 서비스를 끄면
[CLLocationManager setDefaultEffectiveBundle:[NSBundle bundleForClass:self.class]];
[_locationManager startUpdatingLocation];
, 그것은
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
으로 이동합니다 : 2012년 10월 25일 10시 38분
나는 내 위치 결정 코드를 변경
서비스를 사용하도록 설정 한 경우 내가 권한을 부여했는지 여부에 관계없이 cal이 없습니다. 링 다시 (모두
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
및
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
가 호출되지 않습니다). 그런데
, 나는/서비스 해제를 설정,
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
이 호출,하지만 난 authorizationStatus을 변경하지 않을 때는됩니다.