Skip to content Skip to sidebar Skip to footer

How To Read Cycling And Running Data From Google Fit History Api Using Readdailytotal

I'm trying to read daily data from Fitness History Api with method readDailyTotal. I want to read steps, cycling and running. I have implemented steps successfully but i can't get

Solution 1:

I'm not sure about cycle pedaling data, but you can get a biking type data like this:

      DataReadRequest readRequest = new DataReadRequest.Builder()
            .aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)
            .bucketByTime(1, TimeUnit.DAYS)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .build();

    PendingResult<DataReadResult> pendingResult = Fitness.HistoryApi.readData(client, readRequest);

    DataReadResult dataReadResult = pendingResult.await(60, TimeUnit.SECONDS);
    Log.d(TAG, "Retrieved results: " + dataReadResult);
    if (dataReadResult.getStatus().isSuccess()) {
        if (dataReadResult.getBuckets().size() > 0) {

            for (Bucket bucket : dataReadResult.getBuckets()) {

                List<DataSet> dataSets = bucket.getDataSets();
                Log.d(TAG, "getFitHistoryByTime: Activity " + bucket.getActivity());
                Log.d(TAG, "getFitHistoryByTime: Start - End  "
                        + dateFormat.format(bucket.getStartTime(TimeUnit.MILLISECONDS))
                        + " - "
                        + dateFormat.format(bucket.getEndTime(TimeUnit.MILLISECONDS)));
                for (DataSet dataSet : dataSets) {
                    Log.i(TAG, "Data returned for Data type: " + dataSet.getDataType().getName());
                    for (DataPoint dp : dataSet.getDataPoints()) {

                         if (dp.getDataType().equals(DataType.AGGREGATE_ACTIVITY_SUMMARY)) {
                            boolean activityToAdd = false;
                            ActivitiesData activitiesData = new ActivitiesData();
                            for (Field field : dp.getDataType().getFields()) {
                                if (Field.FIELD_ACTIVITY.equals(field)) {
                                    int activityType = dp.getValue(field).asInt();
                                    Log.d(TAG, "getFitHistoryByTime: activity type " + activityType);
                                    if (FitnessActivities.getName(activityType).equals("biking")) {
                                        activityToAdd = true;
                                        Log.d(TAG, "getFitHistoryByTime: added activity: " + FitnessActivities.getName(activityType));

                                    }
                                }

                                if (Field.FIELD_DURATION.equals(field)) {
                                    long duration = dp.getValue(field).asInt();  
                                }
                            }
                        }
                    }
                }


            .....

Perhaps you get the idea based on this code snippet. Also, try to post this question on Google Fit G+ community.

Kind regards. MB

Post a Comment for "How To Read Cycling And Running Data From Google Fit History Api Using Readdailytotal"