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

来源:互联网 发布:小米笔记本15.6 知乎 编辑:程序博客网 时间:2024/04/28 15:22
随着中国北京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以上的真机上测试,模拟器是不可以的哦。
0 0
原创粉丝点击