您的位置:首页 > 移动开发 > IOS开发

iOS开发之获取实时气压、相对高度

2016-07-10 10:51 1756 查看
随着中国北京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以上的真机上测试,模拟器是不可以的哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息