我目前工作的一个Android项目,其中有收集来自谷歌配合API每日信息。我寻觅了很多,但我还没有发现2个问题的答案:
非常感谢你提前)
为了您点的第一部分。如果形成适当分段的开始和结束时间一起斗和聚集功能,您可以获取每个小时的数据桶数据读取请求。下面是我使用的检索每小时数据对于任何给定的开始和结束日期的代码。
fun getReadDataRequestBuilderAggregated(startDate: Date, endDate: Date): DataReadRequest? {
val cal = Calendar.getInstance()
cal.time = startDate.setDayStartTime()
var startTime = cal.timeInMillis
cal.time = endDate.setDayEndTime()
var endTime = cal.timeInMillis
return if (startTime>endTime) {
null
} else {
return DataReadRequest.Builder()
.aggregate(DataType.TYPE_CALORIES_EXPENDED, DataType.AGGREGATE_CALORIES_EXPENDED)
.aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
.bucketByTime(1, TimeUnit.HOURS)
.enableServerQueries()
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS).build()
}
}
private fun Date.setDayEndTime(): Date {
val currentTime = Calendar.getInstance().apply {
time = this@setDayEndTime
}
currentTime.set(Calendar.HOUR_OF_DAY, 23)
currentTime.set(Calendar.MINUTE, 59)
currentTime.set(Calendar.SECOND, 59)
return currentTime.time
}
private fun Date.setDayStartTime(): Date {
val currentTime = Calendar.getInstance().apply {
time = this@setDayStartTime
}
currentTime.set(Calendar.HOUR_OF_DAY, 0)
currentTime.set(Calendar.MINUTE, 0)
currentTime.set(Calendar.SECOND, 0)
currentTime.set(Calendar.MILLISECOND,0)
return currentTime.time
}