繁体   English   中英

Google Fit步数

[英]Google Fit Step Count

我需要获取健身数据以反映在android fit应用程序中显示的数据。 我已经尝试使用Sensor API,但是该数字反映了自设备启动以来(而不是当天)所采取的步骤数量。

如何从Google Fit REST API这样的Google Fit REST API获取步骤计数?

我也尝试使用History API并查询stepcount_cumulative和step_delta。 这两个值都不反映fit API的值。

我想到了将前一天的值存储在sharedPref中并减去差值以获得真实值的想法。 还需要考虑其他有关设备复位时间的计算。

有没有更简单的方法来获取我需要的值?

试试这个新方法HistoryApi.readDailyTotal() (需要Google Play服务v24)

PendingResult<DailyTotalResult> result = HistoryApi.readDailyTotal(client, TYPE_STEP_COUNT_DELTA);
   DailyTotalResult totalResult = result.await(30, SECONDS);
   if (totalResult.getStatus().isSuccess()) {
     DataSet totalSet = totalResult.getTotal();
     long total = totalSet.isEmpty()
         ? 0
         : totalSet.getDataPoints().get(0).getValue(FIELD_STEPS).asInt();
   } else {
     // handle failure
   }

https://developer.android.com/reference/com/google/android/gms/fitness/HistoryApi.html

这对我有用https//github.com/rsteckler/Android-Google-Fit-Service-Skeleton

您要寻找的功能:

   private void getStepsToday() {
        Calendar cal = Calendar.getInstance();
        Date now = new Date();
        cal.setTime(now);
        long endTime = cal.getTimeInMillis();
        cal.set(Calendar.HOUR_OF_DAY, 0);
        cal.set(Calendar.MINUTE, 0);
        cal.set(Calendar.SECOND, 0);
        long startTime = cal.getTimeInMillis();

        final DataReadRequest readRequest = new DataReadRequest.Builder()
                .read(DataType.TYPE_STEP_COUNT_DELTA)
                .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
                .build();

        DataReadResult dataReadResult =
                Fitness.HistoryApi.readData(mGoogleApiFitnessClient, readRequest).await(1, TimeUnit.MINUTES);

        DataSet stepData = dataReadResult.getDataSet(DataType.TYPE_STEP_COUNT_DELTA);

        int totalSteps = 0;

        for (DataPoint dp : stepData.getDataPoints()) {
            for(Field field : dp.getDataType().getFields()) {
                int steps = dp.getValue(field).asInt();

                totalSteps += steps;

            }
        }

        publishTodaysStepData(totalSteps);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM