IOS4 has recently introduced the possibility to enable/disable location services for a specific application.
I need to detect if this settings is enabled/disabled for MY application.
First I have tried with:
if ([CLLocationManager locationServicesEnabled])
{
....
}
however this refers to the global location service and not to the specific application setting.
Second I have tried to use
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
...
}
It works but it gets called both in case of service app setting disabled and in other cases like, for example, if a measure fails for some reasons.
I need a code to detect if MY application is allowed to use location services.
How can i achieve this?
Thanks for your support
From the documentation for locationManager: didFailWithError:
If the user denies your application’s use of the location service, this method reports a kCLErrorDenied error. Upon receiving such an error, you should stop the location service.
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
if ([[error domain] isEqualToString: kCLErrorDomain] && [error code] == kCLErrorDenied) {
// The user denied your app access to location information.
}
}
You can find the other error codes here.