在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 //地图开发
网友评论