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

前端 未结 4 1741
挽巷
挽巷 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 03:49

    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));
            }
        }
    });
    

提交回复
热议问题