首页 > 开发 > iOS > 正文

ios 里如何判断当前应用的定位服务是否可用

2017-09-08 14:03:20  来源:网友分享

如何在某个程序里面判定当前应用程序的定位服务是否可用

解决方案

SO上有一个答案

[CLLocationManager locationServicesEnabled]检测的是整个iOS系统的位置服务开关,无法检测当前应用是否被关闭,只能通过CLLocationManagerDelegatelocationManager:didFailWithError:方法去检测:

- (void)locationManager: (CLLocationManager *)manager       didFailWithError: (NSError *)error {    NSString *errorString;    [manager stopUpdatingLocation];    NSLog(@"Error: %@",[error localizedDescription]);    switch([error code]) {        case kCLErrorDenied:            //Access denied by user            errorString = @"Access to Location Services denied by user";            //Do something...            break;        case kCLErrorLocationUnknown:            //Probably temporary...            errorString = @"Location data unavailable";            //Do something else...            break;        default:            errorString = @"An unknown error has occurred";            break;        }    }    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:errorString delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];    [alert show];    [alert release];}

具体的CLError信息可以看CLLocationManager文档