为什么HealthKit的每分钟步数和每小时步数不同?

时间:2017-05-11 18:08:54

标签: health-kit

我正在使用类似于Get total step count for every date in HealthKit中的Swift示例的方法来获取HealthKit中的步骤数。这很有效。

我的偏好是获得每分钟或每小时的步数,而不是该代码每天的步数 - 虽然每小时步数的总和与HealthKit报告的每日步数完全一致,但是步骤不匹配每小时或每日总和。

有没有办法让每分钟步骤摘要有效?或者是否有一个合乎逻辑的答案,为什么他们有很大的不同?

与上面的代码和我的代码的唯一区别是以下每小时计算(工作原理相同):

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/webservice/path").fullyAuthenticated().and().
        httpBasic().and().
        csrf().disable();
    }

以及以下每分钟计算(通常超过计数):

interval.hour = 1

var anchorComponents = calendar.dateComponents([.hour, .day, .month, .year], from: NSDate() as Date)

显然我错过了一些东西。感谢您的任何见解。

埃里克

1 个答案:

答案 0 :(得分:1)

查询谓词有一些选项(.strictStartDate,.strictEndDate),这些选项确定查询是否查找严格在间隔(严格停止开始日期)内的所有样本。包括在间隔之外停止或开始的样本。

我怀疑您的脚步样本可能跨越了微小的界限,并且取决于您如何定义间隔,这将产生很大的不同。

我使用每日摘要进行工作,并且将间隔定义为(严格,不严格),因此跨越两天的样本仅计入开始的那一天。(快速4)

let predicate = HKQuery.predicateForSamples(withStart: start, end: end, options: .strictStartDate)

我注意到,您链接到的SO问题的最终答案也定义了一个(严格,非严格)间隔。