iOS关于定位

2016-08-09  本文已影响39人  sunny_王

在iOS8只有需要在info.plist中添加配置信息:

定位分为永不、试用期间、始终:

配置试用期间:NSLocationWhenInUseUsageDescription 、NSLocationWhenInUseDescription 对应为String类型

配置始终:NSLocationAlwaysDescription、NSLocationAlwaysUsageDescription

Privacy - Location Usage Description是对于应用使用位置信息去干什么的描述可以不写

- (CLLocationManager *)manager

{

if (!_manager) {

//初始化

_manager = [[CLLocationManager alloc] init];

_manager.delegate = self;

// 每隔多米定位一次

//        _manager.distanceFilter = 100;

/**

kCLLocationAccuracyBestForNavigation // 最适合导航

kCLLocationAccuracyBest; // 最好的

kCLLocationAccuracyNearestTenMeters; // 10m

kCLLocationAccuracyHundredMeters; // 100m

kCLLocationAccuracyKilometer; // 1000m

kCLLocationAccuracyThreeKilometers; // 3000m

*/

// 精确度越高, 越耗电, 定位时间越长

_manager.desiredAccuracy = kCLLocationAccuracyBest;

/** -------iOS8.0定位适配-------- */

if([[UIDevice currentDevice].systemVersion floatValue] >= 8.0)

{

// 前台定位授权(默认情况下,不可以在后台获取位置, 勾选后台模式 location update, 但是 会出现蓝条)

//            [_lM requestWhenInUseAuthorization];

// 前后台定位授权(请求永久授权)

// +authorizationStatus != kCLAuthorizationStatusNotDetermined

// 这个方法不会有效

// 当前的授权状态为前台授权时,此方法也会有效

[_manager requestAlwaysAuthorization];

}

// 允许后台获取用户位置(iOS9.0)

if([[UIDevice currentDevice].systemVersion floatValue] >= 9.0)

{

// 一定要勾选后台模式 location updates

_manager.allowsBackgroundLocationUpdates = NO;

}

//        if ([_lM respondsToSelector:@selector(requestAlwaysAuthorization)])

//        {

//            [_lM requestAlwaysAuthorization];

//        }

}

return _manager;

}

http://my.oschina.net/are1OfBlog/blog/420034      //地图开发

上一篇下一篇

猜你喜欢

热点阅读