我想从Google fit API的历史客户端中获取不同类型的数据,现在我可以读取DataType.TYPE_STEP_COUNT_DELTA & DataType.TYPE_DISTANCE_DELTA的历史。
但是我不能有任何关于DataType.TYPE_STEP_COUNT_CADENCE的数据,这个类型的数据集从来没有包含任何数据点。
谁能帮我解决这个问题?
我是这样做的。
请求:
Fitness.getHistoryClient(context, account)
.readData(DataReadRequest.Builder()
.read(DataType.TYPE_STEP_COUNT_CADENCE)
.read(DataType.TYPE_STEP_COUNT_DELTA)
.read(DataType.TYPE_DISTANCE_DELTA)
.setTimeRange(
configuration.startTime.timeInMillis,
configuration.endTime.timeInMillis,
TimeUnit.MILLISECONDS
)
.bucketByTime(1, TimeUnit.HOURS)
.enableServerQueries()
.build()
)
.addOnSuccessListener { response ->
liveDataUpdates.value = PedometerSensorData.fromBuckets(response.buckets)
}
Parsing Data:
fun fromBuckets(buckets: List<Bucket>): List<PedometerSensorData> {
...
buckets.forEach { bucket ->
bucket.dataSets.forEach { dataSet ->
if(dataSet.dataType == DataType.TYPE_STEP_COUNT_CADENCE) {
Log.d("TYPE_STEP_COUNT_CADENCE", "STEP COUNT CADENCE IS EMPTY ${dataSet.isEmpty}")
}
...
}
}
Fit在计算节奏时,唯一的计算方法是取点的类型为 DataType.TYPE_STEP_COUNT_DELTA
并将该值除以该点的持续时间。
所以,如果你想获得节奏数据,我建议在一个适当的时间间隔内进行。