如何解决如何获取谷歌适合的营养数据
我无法通过 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 举报,一经查实,本站将立刻删除。