1.定位的基本使用:
1>iOS7只要開始定位, 系統就會自動要求用戶對你的應用程序授權. 但是從iOS8開始, 想要定位必須先”自己”“主動”要求用戶授權
在iOS8中調用requestAlwaysAuthorization和requestWhenInUseAuthorization要主動請求授權, 而且 必須再info.plist文件中配置一項屬性才能彈出授權窗口
NSLocationWhenInUseDescription,允許在前臺獲取GPS的描述(彈框時的描述就是key後面的文字,下同)
NSLocationAlwaysUsageDescription,允許在後臺獲取GPS的描述
if([[UIDevice currentDevice].systemVersion doubleValue] >= 8.0){
// 主動要求用戶對我們的程序授權, 授權狀態改變就會通知代理
[self.mgr requestAlwaysAuthorization]; // 請求前臺和後臺定位權限
//[self.mgr requestWhenInUseAuthorization];// 請求前臺定位權限
}else{
// 3.開始監聽(開始獲取位置)
[self.mgr startUpdatingLocation];
}
並且監聽:
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status{
if (status == kCLAuthorizationStatusAuthorizedAlways || status == kCLAuthorizationStatusAuthorizedWhenInUse){
NSLog(@"授權成功");
// 開始定位
[self.mgr startUpdatingLocation];
}
}
在有授權的時候纔開始進行定位。所以要根據系統版本的不同進行判定,iOS8之前可以直接進行定位,在iOS8以後要按照上述步驟進行
設置定位精度和多遠進行一次定位:
self.mgr.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
self.mgr.distanceFilter = 500;
iOS7授權框彈出時的描述可以配置:
Privacy - Location Usage Description,後面加描述