检测定位服务
+ (BOOL)isLocationUpdatesAvailable
{
CLAuthorizationStatus status = [CLLocationManager authorizationStatus];
if ([CLLocationManager instancesRespondToSelector:@selector(requestWhenInUseAuthorization)]) {
NSString *alwaysDescription = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationAlwaysUsageDescription"];
NSString *whenInUseDescription = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"NSLocationWhenInUseUsageDescription"];
NSAssert([alwaysDescription length] || [whenInUseDescription length], @"NSLocationAlwaysUsageDescription or NSLocationWhenInUseUsageDescription key not present in the info.plist. Please add it in order to recieve location updates");
}
#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
switch (status) {
case kCLAuthorizationStatusAuthorizedAlways:
case kCLAuthorizationStatusAuthorizedWhenInUse:
case kCLAuthorizationStatusNotDetermined:
return YES;
break;
case kCLAuthorizationStatusDenied:
case kCLAuthorizationStatusRestricted:
default:
return NO;
break;
}
#else
switch (status) {
case kCLAuthorizationStatusAuthorized:
case kCLAuthorizationStatusNotDetermined:
return YES;
break;
case kCLAuthorizationStatusDenied:
case kCLAuthorizationStatusRestricted:
default:
return NO;
break;
}
#endif
}
https://github.com/axldyb/CLLocationManager-blocks