CoreLocation
补充:代理方法中程序定位状态的改变
//授权状态改变的时候->status当前的授权状态
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
switch(status){
case kCLAuthorizationStatusNotDetermined:
{
NSLog(@"用户没有决定");
break;
}
case kCLAuthorizationStatusRestricted:
{
NSLog(@"受到限制");
break;
}
//用户延迟了应用的授权,或者设置中的定位服务并没有打开
case kCLAuthorizationStatusDenied:
{
//判断系统定位服务有没有打开
if ([CLLocationManager locationServicesEnabled]) {
NSLog(@"系统定位服务已经开启");
//还是不行->程序的定位服务没有开启->引导用户打开程序的定位服务限制
//iOS8.0以下->截图引导用户打开定位服务
//iOS8.0以上
NSURL * url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
//这个时候应用跳转到该程序的定位服务设置界面,打开其定位服务即可
}
}else
{
NSLog(@"系统定位服务开启失败");
}
break;
}
case kCLAuthorizationStatusAuthorizedAlways:
{
NSLog(@"前后台定位授权");
break;
}
case kCLAuthorizationStatusAuthorizedWhenInUse:
{
NSLog(@"前台定位授权");
break;
}
default:break;
}
}