iOS8的定位,始终开启仍是应用运行时开启

iOS8的定位,始终开启还是应用运行时开启

原文  http://blog.****.net/nextstudio/article/details/40050095

 

http://www.tuicool.com/articles/VN3632

 

 

1、修改info

新增Key: NSLocationAlwaysUsageDescription 和 NSLocationWhenInUseUsageDescription ,这两个Key的值将分别用于描述应用程序始终使用和使用期间使用定位的说明,这些说明将显示在用户设置中。

info新增键值对如下 :

iOS8的定位,始终开启仍是应用运行时开启

iOS8的定位,始终开启仍是应用运行时开启

应用程序说明参见微信:

iOS8的定位,始终开启仍是应用运行时开启

2、CLLocationManager初始化

iOS8CLLocationManager新增实例方法 requestWhenInUseAuthorization和 requestAlwaysAuthorization,需要在初始化时根据需要调用。

 

if([CLLocationManager locationServicesEnabled]){
self.locationManage = [[[CLLocationManager alloc] init] autorelease];
self.locationManage.delegate = self;
self.locationManage.distanceFilter = 200;
self.locationManage.desiredAccuracy = kCLLocationAccuracyBestForNavigation;//kCLLocationAccuracyBest;
if (SYSTEM_VERSION >= 8.0) {
    //使用期间
    [self.locationManage requestWhenInUseAuthorization];
    //始终
    //or [self.locationManage requestAlwaysAuthorization]
}
    }

3、代理

新增下面的代理方法:

- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
switch (status) {
case kCLAuthorizationStatusNotDetermined:
if ([self.locationManage respondsToSelector:@selector(requestAlwaysAuthorization)])
{
[self.locationManage requestWhenInUseAuthorization];
}
break;
default:
break;
}

}