iOS9.1 判断定位是否可用 并定位自己位置
来源:互联网 发布:家用工具品牌 知乎 编辑:程序博客网 时间:2024/06/06 17:11
由于iOS9.1关闭整个系统定位会在调用定位时直接出提示,所以没有做判断 ,这个只是在判断应用定位是否可用,以及定位不到的情况!!
你需要在info.plist表里面添加两条变量
在Info.plist中加入两个缺省没有的字段
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
这两个字段没什么特别的意思,就是自定义提示用户授权使用地理定位功能时的提示语。
#import <CoreLocation/CoreLocation.h>
@interface ViewController : UIViewController<CLLocationManagerDelegate>
{
CLLocationDegrees lati;
CLLocationDegrees longti;
}
/**
* 地图
*/
@property (nonatomic, strong)CLLocationManager *cllocationManager;
// 设置地图启用定位
- (void)setMap {
//定位功能可用,开始定位
_cllocationManager = [[CLLocationManager alloc]init];
_cllocationManager.delegate = self;
_cllocationManager.desiredAccuracy = kCLLocationAccuracyNearestTenMeters;
[_cllocationManager requestWhenInUseAuthorization];
[_cllocationManager startUpdatingLocation];
}
// 判断定位是否可用
- (void)locationManager: (CLLocationManager *)manager didFailWithError: (NSError *)error {
NSString *errorString;
[manager stopUpdatingLocation];
NSLog(@"Error: %@",[error localizedDescription]);
switch([error code]) {
case kCLErrorDenied:
//Access denied by user
errorString = @"用户关闭";
// 定位不可用 —— 传虚拟经纬度
lati = 0.000000;
longti = 0.000000;
//Do something...
break;
case kCLErrorLocationUnknown:
//Probably temporary...
errorString = @"位置数据不可用";
//Do something else...
break;
default:
errorString = @"未知错误";
break;
}
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Error" message:errorString delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
}
// 代理方法 地理位置反编码
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations {
NSLog(@"5");
CLLocation *newlocation = locations[0];
CLLocationCoordinate2D oCoordinate = newlocation.coordinate;
NSLog(@"经度:%f,维度:%f",oCoordinate.longitude,oCoordinate.latitude);
// 给经纬度全局属性赋值
lati = oCoordinate.latitude;
longti = oCoordinate.longitude;
// [NSTimer scheduledTimerWithTimeInterval:8.0 target:self selector:@selector(action:) userInfo:nil repeats:nil];
[_cllocationManager stopUpdatingLocation];
CLGeocoder *geocoder = [[CLGeocoder alloc]init];
[geocoder reverseGeocodeLocation:newlocation completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
for (CLPlacemark *place in placemarks) {
NSDictionary *location =[place addressDictionary];
NSLog(@"国家:%@",[location objectForKey:@"Country"]);
NSLog(@"城市:%@",[location objectForKey:@"State"]);
NSLog(@"区:%@",[location objectForKey:@"SubLocality"]);
NSLog(@"位置:%@", place.name);
NSLog(@"国家:%@", place.country);
NSLog(@"城市:%@", place.locality);
NSLog(@"区:%@", place.subLocality);
NSLog(@"街道:%@", place.thoroughfare);
NSLog(@"子街道:%@", place.subThoroughfare);
}
}];
NSLog(@"@@@@@@@@@@=====%f,%f",lati,longti);
}
- iOS9.1 判断定位是否可用 并定位自己位置
- ios 定位是否可用的判断
- Android判断定位功能是否可用
- 百度定位:定位自己位置,并显示在地图上
- ios 判断当前应用的定位服务是否可用
- 判断是否开启定位
- 判断定位服务是否开启(手机上位置信息按钮开关)
- 使用百度地图API,定位并显示自己的位置
- ios 判断用户是否开启定位权限并跳转设置
- iOS 判断APP是否打开定位,并实现直接跳转打开定位
- 定位判断是否在中国
- ios 里如何判断当前应用的定位服务是否可用
- ios 里如何判断当前应用的定位服务是否可用
- ios 里如何判断当前应用的定位服务是否可用
- ios 里如何判断当前应用的定位服务是否可用
- 转 ios 里如何判断当前应用的定位服务是否可用
- ios 里如何判断当前应用的定位服务是否可用
- 判断定位是否可用 不可用时app跳到系统设置页面
- swift与OC混编(方法调用)
- 【打CF,学算法——二星级】CodeForces 417C Football(构造)
- IMAGE REGISTRATION
- java String字符串转成json数组并且遍历
- Magento编译模式 - Magento Compiler Mode
- iOS9.1 判断定位是否可用 并定位自己位置
- phpMyAdmin 安装
- IOS项目的目录结构和开发流程(转好文)
- 基于Spring MVC的Web应用开发(12) - Form
- Andriod蓝牙开发总结
- Android源码分析—带你认识不一样的AsyncTask(串并行)
- ENVI 5.1破解版安装过程
- Socket send函数和recv函数详解
- 【C语言复习(六)】隐式类型转换相关分析