微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

营养历史数据始终从 Android 上的 Google Fit 返回第一项

如何解决营养历史数据始终从 Android 上的 Google Fit 返回第一项

我正在尝试从 Android 上的 Google Fit 查询营养历史数据。

数据是通过食物记录应用程序 (Lose It) 插入的。

但是当我从 Google Fit History 客户端查询数据时,它仅检索我插入应用程序中的第一个项目的数据。 即如果我用果汁和百吉饼记录早餐,将从客户端检索的宏仅用于百吉饼。

我的代码

val NowInMillis = 1625656053000;
val weekAgoInMillis = 1625137653000;

val fitnessOptions = fitnessOptions.builder()
    .addDataType(DataType.TYPE_NUTRITION)
    .addDataType(DataType.AGGREGATE_NUTRITION_SUMMARY)
    .build()

val account = GoogleSignIn.getAccountForExtension(activity,fitnessOptions)

coroutinescope.launch {

    fitness.getHistoryClient(activity,account)
        .readDailyTotal(DataType.TYPE_NUTRITION)
        .addOnSuccessListener { response ->
            for (dp in response.dataPoints) {
                Log.i(TAG,"Data point:")
                Log.i(TAG,"\tType: ${dp.dataType.name}")
                Log.i(
                    TAG,"\tStart: ${
                        Calendar.getInstance().apply {
                            timeInMillis = dp.getStartTime(TimeUnit.MILLISECONDS)
                        }.time
                    }")
                Log.i(
                    TAG,"\tEnd: ${
                        Calendar.getInstance().apply {
                            timeInMillis = dp.getEndTime(TimeUnit.MILLISECONDS)
                        }.time
                    }")
                for (field in dp.dataType.fields) {
                    Log.i(TAG,"\tField: ${field.name.toString()} Value: ${dp.getValue(field)}")
                }
            }
        }
        .addOnFailureListener { e -> Log.d(TAG,"OnFailure()",e) }
}              

打印结果:

2021-07-06 22:55:17.988 30237-30237/com.Metaflow.Flutterhealthfitexample I/FlutterHealthFitPlugin:  Type: com.google.nutrition.summary
2021-07-06 22:55:17.992 30237-30237/com.Metaflow.Flutterhealthfitexample I/FlutterHealthFitPlugin:  Start: Tue Jul 06 01:00:01 GMT+03:00 2021
2021-07-06 22:55:17.996 30237-30237/com.Metaflow.Flutterhealthfitexample I/FlutterHealthFitPlugin:  End: Tue Jul 06 01:00:01 GMT+03:00 2021
2021-07-06 22:55:18.002 30237-30237/com.Metaflow.Flutterhealthfitexample I/FlutterHealthFitPlugin:  Field: nutrients Value: {calories=111.6,carbs.total=25.792,cholesterol=0.0,dietary_fiber=0.496,fat.saturated=0.0496,fat.total=0.496,protein=1.736,sodium=2.48,sugar=20.832}
2021-07-06 22:55:18.002 30237-30237/com.Metaflow.Flutterhealthfitexample I/FlutterHealthFitPlugin:  Field: meal_type Value: 1

如果我查看食物记录应用程序,我可以看到下一个结果,它清楚地表明检索到的营养信息只匹配果汁:

food logger screenshot

我认为我的代码可能有问题,所以我下载了一个 FitBit 应用程序,该应用程序也能够显示来自 Google Fit 的营养信息,并且显示了相同的结果:

FitBit app result

是否可以选择获取一整天的营养信息?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。