首页 > 解决方案 > 每小时间隔的 GoogleFit 未知 activityId

问题描述

使用 Google Fit ( com.google.android.gms:play-services-fitness:20.0.0),我们尝试每隔一小时减少一次活动,但是当我们有一个跨越小时的活动时,activityId前几个小时的参数是 4(未知)。

例如,假设从 10:40 到 11:30 进行 50 分钟的跑步(活动),我们会询问 Google Fit 每小时间隔,具体而言:

  1. 在 10:00 到 11:00 之间,我们预计跑步 20 分钟,但是我们得到的不是 20 分钟的结果,而是整个 60 分钟的未知活动(涵盖从 10:00 到 11:00 的所有分钟),返回给我们的结果是activityId4;

  2. 在 11:00 到 12:00 之间,我们预计会运行 30 分钟,在这种情况下,它们会正确到达;

如果我们尝试使用包括所有正在进行的活动的更广泛的范围(例如从 10:00 到 12:00),那么答案是正确的,我们可以按预期运行 50 分钟。

我们正在使用这个聚合:

.aggregate(DataType.TYPE_ACTIVITY_SEGMENT)
.aggregate(DataType.TYPE_CALORIES_EXPENDED)
.aggregate(DataType.TYPE_DISTANCE_DELTA)
.aggregate(DATASOURCE_ESTIMATED_STEP_COUNT_DELTA)

用 1 分钟bucketByActivitySegment

这是我们调用以从 Google Fit 读取数据的 API:  https ://developers.google.com/android/reference/com/google/android/gms/fitness/HistoryClient

任何想法?

标签: androidgoogle-fit

解决方案


推荐阅读