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
As Sameer Z. requested I'm posting full code to get values.
DataSource estimatedSteps = new DataSource.Builder()
.setDataType(DataType.TYPE_STEP_COUNT_DELTA)
.setType(DataSource.TYPE_DERIVED)
.setStreamName("estimated_steps")
.setAppPackageName("com.google.android.gms")
.build();
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(estimatedSteps, DataType.AGGREGATE_STEP_COUNT_DELTA)
.setTimeRange(startTimeSeconds, endTimeSeconds, TimeUnit.SECONDS)
.bucketByTime(1, TimeUnit.DAYS)
.enableServerQueries()
.build();
PendingResult pendingResult = Fitness.HistoryApi.readData(client, readRequest);
pendingResult.setResultCallback(new ResultCallback() {
@Override
public void onResult(@NonNull DataReadResult dataReadResult) {
List allBuckets = dataReadResult.getBuckets();
for (Bucket bucket : allBuckets) {
long startAtSeconds = bucket.getStartTime(TimeUnit.SECONDS);
Value stepsValue = getValue(bucket, DataType.TYPE_STEP_COUNT_DELTA, Field.FIELD_STEPS);
int steps = stepsValue != null ? stepsValue.asInt() : 0;
Log.d(TAG, String.format("startAtSeconds %s, steps %s", startAtSeconds, steps));
}
}
});