谷歌飞度API的Android越来越按小时和锻炼的总时间每天步骤

问题描述 投票:1回答:1

我目前工作的一个Android项目,其中有收集来自谷歌配合API每日信息。我寻觅了很多,但我还没有发现2个问题的答案:

  • 如何获得BU与阵列小时的步骤。例如,从下午1点到下午2点我已经走100步,从下午2点到下午3点200步。
  • 如何让用户行使的那一天的时间总量。

非常感谢你提前)

android google-fit
1个回答
1
投票

为了您点的第一部分。如果形成适当分段的开始和结束时间一起斗和聚集功能,您可以获取每个小时的数据桶数据读取请求。下面是我使用的检索每小时数据对于任何给定的开始和结束日期的代码。

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
    }
© www.soinside.com 2019 - 2024. All rights reserved.