iOS CoreMotion API - 有没有办法跟踪某人在一段时间内走路的次数?

时间:2015-05-07 20:51:52

标签: ios objective-c

我试图编写一个简单的应用程序,这样我就可以使用CoreMotion API跟踪我在一定天数内的平均步行时间。 CMPedometer API可以访问上次会话的startDate和endDate。我认为这样做的一个简单方法就是保持一个' tally'用户默认值中的会话(即每次计步器跟踪您的步行时,计数增加1)并保持endDate - startDate时间差的总和。然后,我只是将总时间差异除以计数以获得平均步行时间。

我不知道我是怎么做到的。有没有办法在计步器跟踪行走时每次收集这些数据?

1 个答案:

答案 0 :(得分:1)

  

CMPedometer API可以访问上次会话的startDate和endDate。

哪个API可以做到这一点? CMPedometer docs仅指定以下方法:

- queryPedometerDataFromDate:toDate:withHandler:

  

使用此方法检索指定日期之间的历史行人数据。此方法异步运行并将数据传递到您提供的块。只存储过去七天的数据并可供您检索。指定过去七天以上的开始日期仅返回可用数据。

我认为您正在寻找CMMotionActivityManager。根据文档,从CMMotionActivityManager获取活动非常简单:

- queryActivityStartingFromDate:toDate:toQueue:withHandler:

该查询将为您提供一组CMMotionActivity对象。过滤"行走=是"并且您已获得指定时间段内的步行会话列表(仅适用于过去7天)。

我不能说它有多准确,或者您是否需要进行一些自己的数据清理/过滤。