Step count retrieved through Google Fit Api does not match Step count displayed in Google Fit Official App

前端 未结 4 1762
挽巷
挽巷 2020-12-05 03:19

I have developed an application that needs to display daily steps count. To do this, I used the API available in Google Fit SDK.

All seems to be working properly, bu

4条回答
  •  囚心锁ツ
    2020-12-05 04:16

    I found the solution.

    The Fit app does some additional processing on top of the steps. It estimates steps based on the activity when none are recorded.

    If it can help someone : You need to use a custom DataSource of the package com.google.android.gms

    DataSource ESTIMATED_STEP_DELTAS = new DataSource.Builder()
                .setDataType(DataType.TYPE_STEP_COUNT_DELTA)
                .setType(DataSource.TYPE_DERIVED)
                .setStreamName("estimated_steps")
                .setAppPackageName("com.google.android.gms")
                .build();
    

    And use this in your aggregate method like this :

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

提交回复
热议问题