美文网首页
iOS计步实现

iOS计步实现

作者: Amanda_Lhy | 来源:发表于2017-03-07 15:46 被阅读0次

    要实现计步需要清楚的是iPhone5s、iPhone6、iPhone6 Plus、iPhone6s、iPhone6s Plus使用了M7或者M8处理器,所以可以轻易的实现计步器功能。

    所以:5s以下的设备是不支持手机计步。(不过我在测试的时候5也是可以的)

    一、HealthKit简述:

    HealthKit框架提供了一个结构,应用可以使用它来分享健康和健身数据。HealthKit管理从不同来源获得的数据,并根据用户的偏好设置,自动将不同来源的所有数据合并起来。应用还可以获取每个来源的原始数据,然后执行自己的数据合并。

    使用HealthKit特别注意

    你的应用不应该将HealthKit收集的数据用于广告或类似的服务。注意,在使用HealthKit框架应用中可以插播广告,但是你不能使用HealthKit中的数据来服务广告。

    在没有用户的明确允许下,你不能向第三方展示任何HealthKit收集的数据。即使用户允许,你也只能向提供健康或健身服务的第三方展示这些数据。

    你不能将HealthKit收集的数据出售给广告平台、数据代理人或者信息经销商。

    如果用户允许,你可以将HealthKit数据共享给第三方用于医学研究。注意是用户允许

    你必须明确说明,你和你的应用会怎样使用用户的HealthKit数据。

    二、使用Core Motion:外部使用CMPedometer或者CMStepCounter来读取用户的步数和走的里程。

    需要注意的是,Core

    Motion中的有两种计步:CMStepCounter和CMPedomete。CMPedomete必须iOS8.0以上才可以使用,但是CMPedomete却可以获取更多的运动信息(步数、距离、上下楼层数、速度、节奏、开始和结束时间查询行走相关信息、某一时刻开始监测步数变化),而CMStepCounter只能获取步数。也有那种对两种进行封装的方法。

    两者的区别:

    其实第一种Healthkit也是使用CMPedometer或CMStepCounter来读入用户的步数和走的里程的,只不过计算方法在手机内部。它是利用

    iphone5s 以上的m处理器来获取数据计算了,所以5s以下的设备是不支持 CMPedometer 手机计步的。

    直接使用HealthKit计步会有缺点,计步不准,主要是因为HealthKit记录的时区问题,iOS获取时间的时区按中国的时区少了8个小时

    最后上代码(因为项目就只需要拿到步数即可,则使用的是CMStepCounter):

    1.

    2.

    3.

    4.

    5.

    2017.3.31 更新

    在这里需要设置一下

    希望可以给你一点帮助,以上。

    相关文章

      网友评论

          本文标题:iOS计步实现

          本文链接:https://www.haomeiwen.com/subject/rsvmgttx.html