编程语言
首页 > 编程语言> > 将Google Fit Data提取到Android应用程序中

将Google Fit Data提取到Android应用程序中

作者:互联网

我们如何才能为特定用户获取存储在google fit云中的数据?
我尝试使用History API但没有显示数据.然后我尝试输入一些数据vai History api,现在我只能通过历史api看到这些数据而不是实际存在的完整数据.

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

数据请求是

DataReadRequest readRequest = new DataReadRequest.Builder()

                .aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)

                .bucketByTime(1, TimeUnit.DAYS)
                .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
                .build();

解决方法:

根据你的问题,很难知道你期待什么,但没有收到.更多细节会有所帮助.

我猜这是因为Fit正在返回默认合并的步骤流.基本上,如果两个应用程序同时报告相同60分钟的1,000个步骤,Fit将假设它们是重复的并且“合并”它们以用于响应.

尝试丢失存储桶功能,看看你是否得到了原始步骤.这段代码适合我:

    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;

        }
    }

标签:google-fit,android
来源: https://codeday.me/bug/20190824/1711836.html