iOS开发之获取实时气压、相对高度
2016-07-10 10:51
1801 查看
随着中国北京2022年冬奥会申请成功,很多滑雪爱好者急切需要一款滑雪工具的app,商家看准了这次机会,开始开发该类应用,那么必定少不了测量实时气压值,苹果大boss在iPhone 6及以后的设备内置了气压传感器,那作为一个开发者要如何去获取呢? iOS8之后苹果更新了一个新的API,Core Motion。该Framework包含了三个资源库:SMAItitudeHandler, StartAmbientPrssureUpdates和CMAItimeter。
//写给新手:懒加载初始化 - (CMAltimeter *)altimeter { if (!_altimeter) { _altimeter = [[CMAltimeter alloc]init]; } return _altimeter; }
//检测设备是否支持气压计 if (![CMAltimeter isRelativeAltitudeAvailable]) { NSLog(@"Barometer is not available on this device. Sorry!"); return;
//开始监测 [self.altimeter startRelativeAltitudeUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAltitudeData * _Nullable altitudeData, NSError * _Nullable error) { // 实时刷新数据 [self updateLabels:altitudeData]; }];
//停止也很简单 [self.altimeter stopRelativeAltitudeUpdates];
- (void)updateLabels:(CMAltitudeData *)altitudeData { NSString *altitude = [NSString stringWithFormat:@"%@", [formatter stringFromNumber:altitudeData.relativeAltitude]]; NSString *pressure = [NSString stringWithFormat:@"%@", [formatter stringFromNumber:altitudeData.pressure]]; //相对高度,并非海拔 self.label2.text = [NSString stringWithFormat:@"Relative Altitude: \n%@ m", altitude]; //实时气压 self.label3.text = [NSString stringWithFormat:@"Air Pressure: \n%@ kPa", pressure]; }
那么到现在我们就获得了当前设备所处地区的气压值,但是要注意一定要在iPhone6以上的真机上测试,模拟器是不可以的哦。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法