zoukankan      html  css  js  c++  java
  • IOS 计步器

    这篇博客介绍的是当前比较流行的“计步器”-只是简单的知识点

    计步器的实现在IOS8开始进行了改变。

    但是我会对之前之后的都进行简单介绍。

    IOS 8 -

    复制代码
    //
    //  ViewController.m
    //  CX 计步器
    //
    //  Created by ma c on 16/4/12.
    //  Copyright © 2016年 bjsxt. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <CoreMotion/CoreMotion.h>
    
    @interface ViewController ()
    
    @property (nonatomic, strong) CMStepCounter * counter;
    
    @end
    
    @implementation ViewController
    
    #pragma mark - <懒加载>
    - (CMStepCounter *)counter{
        if (!_counter) {
            _counter = [[CMStepCounter alloc]init];
        }
        return _counter;
    }
    
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        //判断计步器是否可用
        if (![CMStepCounter isStepCountingAvailable]) {
            NSLog(@"计步器不可用");
            return;
        }
        //开始计步
        //startStepCountingUpdatesToQueue 选择在哪个线程里进行
        //updateOn 对应的是每隔几秒后回调下面的block
        [self.counter startStepCountingUpdatesToQueue:[NSOperationQueue mainQueue] updateOn:2 withHandler:^(NSInteger numberOfSteps, NSDate * _Nonnull timestamp, NSError * _Nullable error) {
            
            if (error) {
                return ;
            }
            
            NSLog(@"可以在这里进行一些操作");
            
        }];
    }
    
    
    @end
    复制代码

    IOS 8 +

    复制代码
    //
    //  ViewController.m
    //  CX 计步器
    //
    //  Created by ma c on 16/4/12.
    //  Copyright © 2016年 bjsxt. All rights reserved.
    //
    
    #import "ViewController.h"
    #import <CoreMotion/CoreMotion.h>
    
    @interface ViewController ()
    
    @property (nonatomic, strong) CMPedometer * meter;
    
    @end
    
    @implementation ViewController
    
    #pragma mark - <懒加载>
    - (CMPedometer *)meter{
        if (!_meter) {
            _meter = [[CMPedometer alloc]init];
        }
        return _meter;
    }
    
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        //判断计步器是否可用
        if (![CMPedometer isStepCountingAvailable]) {
            NSLog(@"计步器不可用");
            return;
        }
        //开始计步
        //在一段时间内的部步数与距离
        [self.meter queryPedometerDataFromDate:[NSDate date] toDate:[NSDate dateWithTimeIntervalSinceNow:60*60] withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
            if (error)
            {
                NSLog(@"error===%@",error);
            }
            else {
                NSLog(@"步数===%@",pedometerData.numberOfSteps);
                NSLog(@"距离===%@",pedometerData.distance);
            }
        }];
    }
    
    
    @end
    复制代码
  • 相关阅读:
    ^_^【CSS代码规范】规则顺序
    【html】三
    【代码组织】♣一
    LINUX nautilus 命令
    hadoop 统计一个目录的文件大小
    hadoop基本配置信息
    linux中用到的命令
    简单的hadoop配置(我安装的问题)
    hadoop不能用root用户启动,会报错
    linux 下的ps与jps
  • 原文地址:https://www.cnblogs.com/wuyuxin/p/7045634.html
Copyright © 2011-2022 走看看