探索iOS计步器功能

我的一个朋友是从事外出销售工作,老板不但要看他每天的业绩,也会去关注他每天在某个APP的行走步数。你应该知道的,业绩好一切OK。要是业绩不行,步数也少,那就步步惊心了。接下来他问了我里面的原理。我错误的告诉他是每隔多长时间利用定位去拿到经纬度然后计算出来的。太傻太天真。

不废话了,先看看 苹果官方的描述

Use a CMPedometer object to fetch pedestrian-related data. You use a pedometer object to retrieve step counts and other information about the distance traveled and the number of floors ascended or descended. The pedometer object manages a cache of historic data that you can query or you can ask for live updates as the data is processed.

使用CMPedometer 对象来获取行走相关的数据。你能使用pedometer对象去重新获得步数,距离,上下楼层的层数等信息。pedometer对象管理着一个存储历史数据的容器供你查询,而且你也可以实时去更新当容器里面的数据发生了处理变化。

首先你得导入计步的框架
#import <CoreMotion/CoreMotion.h>
#define OneDayTime 606024

_pedonmeter = [[CMPedometer alloc] init];
 //判断设备是否能够使用计步功能
if ([CMPedometer isStepCountingAvailable]) {
    //查询以前的数据
   [_pedonmeter queryPedometerDataFromDate:[NSDate dateWithTimeIntervalSinceNow:-OneDayTime] toDate:[NSDate dateWithTimeIntervalSinceNow:0] withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
       
       if (error)
       {
           NSLog(@"error===%@",error);
       }
       else {
           NSLog(@"步数===%@",pedometerData.numberOfSteps);
           NSLog(@"距离===%@",pedometerData.distance);
           NSLog(@"上的楼梯层数===%@",pedometerData.floorsAscended);
           NSLog(@"下的楼梯层数===%@",pedometerData.floorsDescended);

       }
   }];
    
    
    //实时更新
    [_pedonmeter startPedometerUpdatesFromDate:[NSDate date] withHandler:^(CMPedometerData * _Nullable pedometerData, NSError * _Nullable error) {
          NSLog(@"实时更新每米所需要的时间(秒)===%@",pedometerData.currentPace);
          NSLog(@"实时更新每秒走的步数===%@",pedometerData.currentCadence);
    }];
}else{
      NSLog(@"设备暂不支持该功能");
}

PS :CMPedometer最低只支持iOS8。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的阅读 13,567评论 5 6
  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 10,110评论 0 23
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,263评论 30 472
  • 看了好多手帐达人的展示,按耐不住自己跃跃欲试的心,终于静下心来,开始自己的手帐记录历程! 因为最近在看星姐...
    懒惰的妮子阅读 436评论 3 6
  • 赫拉利说:真正有权势的人类组织根本不在乎真相如何,他们在乎的是把虚构出来的信仰强加给每个人,并且利用这个信仰...
    吴佟阅读 190评论 0 0