使用 Google Fit HistoryAPI 检索血糖数据

问题描述 投票:0回答:1

我正在尝试使用 Google Fit HistoryAPI 检索血糖数据。我使用 HistoryAPI 示例来获取步数(https://github.com/googlearchive/android-fit/tree/master/BasicHistoryApi)并尝试对其进行修改,以便获取血糖数据而不是步数.

我将健身选项更改为:

 FitnessOptions fitnessOptions =
                FitnessOptions.builder()
                    .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_WRITE)
                    .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_WRITE)
                    .addDataType(TYPE_BLOOD_GLUCOSE, FitnessOptions.ACCESS_READ)
                    .addDataType(AGGREGATE_BLOOD_GLUCOSE_SUMMARY, FitnessOptions.ACCESS_READ)
                    .build();

readRequest 看起来像这样:

DataReadRequest readRequest =
                new DataReadRequest.Builder()
                .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
                .aggregate(TYPE_BLOOD_GLUCOSE, AGGREGATE_BLOOD_GLUCOSE_SUMMARY)
                .bucketByTime(1, TimeUnit.DAYS)
                .build();

步数计数器示例工作正常,但当我尝试检索血糖数据时,我总是得到一个没有任何数据点的空数据集。这里可能有什么问题?

android google-fit
1个回答
0
投票

您无需同时指定数据类型名称和数据源ID。事实上,如果您指定两者,数据类型名称(当前)将被忽略。

如果指定数据源ID,则该数据源必须存在;如果指定数据类型名称,则使用该类型的“默认”数据源;但允许不存在(例如,如果用户从未实际写入血糖数据)。

因此,将您的请求更改为:

{
  "aggregateBy": [{
       "dataTypeName": "com.google.blood_glucose",
                  }],
  "bucketByTime": { "durationMillis": 86400000 },
  "startTimeMillis": 1578718800000,
  "endTimeMillis": 1580360400000
}
© www.soinside.com 2019 - 2024. All rights reserved.