随着人们生活水平的提高,加上移动技术的快速发展,越来越多的软件进军健康行业,计步器是用来记录个人运动的一项很好的技术。这段时间出于对这一技术的好奇,了解学习了一下计步器的实现过程。
计步器的实现有两种方式,(1),直接调用HealthKit框架获取苹果的健康应用数据.(2)速度传感器运动传感器\加速度传感器\加速器(Motion/Accelerometer Sensor)
(1)HealthKit这种方式简单粗暴,但是也有相应的弊端,这个框架获取到的数据好像是1小时一更新,如果你的软件是想要获取到实时数据的话,这种方式的实现不是最佳选择。
(2)基于CoreMotion框架,先来了解一下几种传感器
在iOS8及其以上系统中我们可以使用CMPedometer类获取行走相关信息(步数、距离、上楼、下楼、当前速度等)。
当前设备是否可以获取步数
+ (BOOL)isStepCountingAvailable;当前设备是否可以获取距离
+ (BOOL)isDistanceAvailable;当前设备是否可以获取上下楼层数
+ (BOOL)isFloorCountingAvailable;当前设备是否可以获取速度(s/m)
+ (BOOL)isPaceAvailable当前设备是否可以获取节奏
+ (BOOL)isCadenceAvailable根据开始和结束时间查询行走相关信息
- (void)queryPedometerDataFromDate:(NSDate )start toDate:(NSDate )end withHandler:(CMPedometerHandler)handler;从某一时刻开始监测步数变化
- (void)startPedometerUpdatesFromDate:(NSDate *)start withHandler:(CMPedometerHandler)handler;停止监测步数变化
- (void)stopPedometerUpdates;
把相应的的方法最好放在一个单例里面,利用单例里面对应的方法我们就能获取到自己想要获取到的数据了。
原文地址:http://itzhongxin.blog.51cto.com/12734415/1913695