Как обрабатывать «Не разрешать» для диспетчера местоположений?
-
22-09-2019 - |
Вопрос
Я пока об этом еще не думал.
До сих пор всякий раз, когда устройство просило меня использовать обновление местоположения, я разрешал это.
Но когда я не разрешаю это, менеджер местоположения выдает мне 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.)"
Решение
Осуществлять - (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
}
}
Не связан с StackOverflow