4

我尝试使用以下代码在 android 中读取用户在 Google Fit 中的身高:

 DataReadRequest readHeightRequest = new DataReadRequest.Builder()
            .read(DataType.TYPE_HEIGHT)
            .setTimeRange(FIRST_DAY_OF_MONTH_INMS, NOW_INMS, TimeUnit.MILLISECONDS)
            .build();

但我只有一个没有数据点的空数据集。

根据DataType TYPE_HEIGHT 文档

不应设置开始时间。

所以我试图删除:

.setTimeRange(FIRST_DAY_OF_MONTH_INMS, NOW_INMS, TimeUnit.MILLISECONDS)

-> 崩溃

java.lang.IllegalStateException: Invalid start time: 0
            at com.google.android.gms.internal.jx.a(Unknown Source)
            at com.google.android.gms.fitness.request.DataReadRequest$Builder.build(Unknown Source)

而且我没有看到任何关于在没有结束时间的情况下设置时间范围的方法的文档。

是否有可能有代码的功能示例?

[编辑]

解决方案: 使用大量时间范围。我在 2014 年 6 月 25 日使用 GoogleFit 的演示文稿作为开始时间:

DataReadRequest readRequest = new DataReadRequest.Builder()
                .read(DataType.TYPE_HEIGHT)
                .setTimeRange(PresentationOfGoogleFit(June,25,2014), now, TimeUnit.MILLISECONDS)
                .setLimit(1)
                .build();

它....有效!;)

[/编辑]

4

0 回答 0