#define isIOS(version) ([[UIDevice currentDevice].systemVersion floatValue] >= version)
if (isIOS(8.0)) {
// 要在此处, 请求授权, 但是请求哪个权限, 没法确定, 靠其他开发者确定;
// 1. 获取info.plist 文件内容
NSDictionary *infoDic = [[NSBundle mainBundle] infoDictionary];
// 2. 获取其他开发人员, 填写的key
NSString *always = infoDic[@"NSLocationAlwaysUsageDescription"];
NSString *whenInUse = infoDic[@"NSLocationWhenInUseUsageDescription"];
if ([always length] > 0)
{
[_locationM requestAlwaysAuthorization];
}
else if ([whenInUse length] > 0)
{
[_locationM requestWhenInUseAuthorization];
// 在前台定位授权状态下, 必须勾选后台模式location udpates才能获取用户位置信息
NSArray *services = infoDic[@"UIBackgroundModes"];
if (![services containsObject:@"location"]) {
NSLog(@"友情提示: 当前状态是前台定位授权状态, 如果想要在后台获取用户位置信息, 必须勾选后台模式 location updates");
}else{
if (isIOS(9.0)) {
_locationM.allowsBackgroundLocationUpdates = YES;
}
}
}else
{
NSLog(@"错误---如果在iOS8.0之后定位, 必须在info.plist, 配置NSLocationWhenInUseUsageDescription 或者 NSLocationAlwaysUsageDescription");
}
}