2010-02-25 2 views
17

나는 이것을 아직 생각하지 못했습니다.위치 관리자에게 "허용 안 함"을 처리하는 방법은 무엇입니까?

지금까지 기기에서 위치 업데이트 사용을 요청할 때마다 허용했습니다.

그러나 이제는 허용하지 않을 때 위치 관리자가 kclErrorDenied를 제공하고 위치 관리자는 응용 프로그램을 다시 시작할 때까지 다시 시작할 수 없습니다.

내 질문에 사용자에게 앱을 다시 시작하라는 메시지를 표시해야하거나 위치 관리자 작업을 다시 시작할 수있는 해결책이 있어야합니다.

감사합니다.

The Error : 
ERROR,Time,288787555.078,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1 
WARNING,Time,288787555.108,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1308.0 has been disconnected from daemon 
locationManager:didFailWithError:] [Line 244] Error Denied :Error Domain=kCLErrorDomain Code=1 "Operation could not be completed. (kCLErrorDomain error 1.)" 

답변

36

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error을 구현하십시오.

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { 
    NSMutableString *errorString = [[[NSMutableString alloc] init] autorelease]; 

    if ([error domain] == kCLErrorDomain) { 

     // We handle CoreLocation-related errors here 
    switch ([error code]) { 
     // "Don't Allow" on two successive app launches is the same as saying "never allow". The user 
     // can reset this for all apps by going to Settings > General > Reset > Reset Location Warnings. 
     case kCLErrorDenied: 
      //... 
      break; 
     case kCLErrorLocationUnknown: 
      //... 
      break; 
     default: 
      //... 
      break; 
     } 
    } else { 
     // We handle all non-CoreLocation errors here 
    } 
} 
+0

os가이 두 번 묻습니다. 우리가 응용 프로그램을 다시 시작해야하는 시간을 모두 허용하지 않으면 안됩니까? – harshalb

+1

예, 앱에 절대적으로 현재 위치가 필요한 경우 가능합니다. – willi

+5

아니요 ... @willi가 올바르지 않습니다. 앱에서 한 번 물어 봅니다. 처음. 두 번째 권한 요청을 시작할 수 없습니다. Apple은 사용자가 허용하지 않음을 클릭하면 프로그램이 지리적 위치없이 작동하지 않는다는 것을 사용자에게 알리도록 요구합니다. 필요한 경우 사용자에게 앱을 다시 실행하라고 알립니다. 앱이 없어도 작동 할 수 있다면 앱을 계속 진행하십시오. 어쨌든 사용자가 알리거나 Apple이 귀하의 앱을 승인하지 못하게해야합니다. 추신 : 그들은 * do * 이것을 확인 ... 그래서 제대로 해. – Jann