如何获取谷歌适合的营养数据

问题描述

我无法通过 google fit 返回任何与消耗的卡路里有关的数据。数据集从不包含任何数据点。 Google Fit 主屏幕显示 623 卡路里。我通过 LoseIt 应用输入了食物卡路里数据。

    fun getStartTime(): Long {
    val cal = Calendar.getInstance()
    cal.time = Date()
    val endTime = cal.timeInMillis
    cal.add(Calendar.YEAR,-1)
    return cal.timeInMillis
}

fun getEndTime(): Long {
    val cal = Calendar.getInstance()
    cal.time = Date()
    val endTime = cal.timeInMillis
    return cal.timeInMillis
}

    fun getfitnessOptions(): fitnessOptions {
    return fitnessOptions.builder()
        .addDataType(
            DataType.TYPE_NUTRITION,fitnessOptions.ACCESS_READ
        )
        .addDataType(
            DataType.AGGREGATE_NUTRITION_SUMMARY,fitnessOptions.ACCESS_READ
        )

        .build()
   }


suspend fun readCaloriesData(activity: Context): MutableList<HKData> {

    val account = GoogleSignIn.getAccountForExtension(activity,getfitnessOptions())

    val response =
        fitness.getHistoryClient(activity,account)
            .readData(
                DataReadRequest.Builder()
                    .read(DataType.TYPE_NUTRITION)
                    .setTimeRange(getStartTime(),getEndTime(),TimeUnit.MILLISECONDS)
                    .build()
            )

    val result = withContext(dispatchers.IO) { Tasks.await(response) }

    if (result != null) {
        val data = result.getDataSets()
        return dumpCalorieData(data)
    } else {
        Log.d(this.toString(),"fitness.getHistoryClient task Failed")
    }

    return mutablelistof()
}

fun dumpCalorieData(dataSets: MutableList<DataSet>): MutableList<HKData>
{
    val dataArray: MutableList<HKData> = mutablelistof()

    for(dataSet in dataSets) {

        Log.i(
            this.javaClass.canonicalName,"Data returned for Data type: " + dataSet.dataType.name
        )

        if (dataSet.dataPoints.count() < 1) { Log.i(
            this.javaClass.canonicalName,"No data in dataset"
        )}

        //never gets to here


        for (dp in dataSet.dataPoints) {

        }
    }

    return dataArray
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)