首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何区分Google中的人工添加步骤和传感器记录步骤

如何区分Google中的人工添加步骤和传感器记录步骤
EN

Stack Overflow用户
提问于 2019-01-08 14:20:56
回答 2查看 2K关注 0票数 1

我在我的项目中使用Google来获取用户的日常步骤。但问题是,用户可以通过添加活动手动输入这些步骤。当我检索日常步骤时,Google也会返回手动添加的步骤。是否有任何方法区分手动添加的步骤和传感器记录的步骤。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-09 14:36:20

我就是这样解决这个问题的。

代码语言:javascript
运行
复制
   final DataReadRequest readRequest = new DataReadRequest.Builder()
            .read(googleFitUtils.getEstimatedSteps())
            .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();
            if (!"user_input".equals(dp.getOriginalDataSource().getStreamName()))
                totalSteps += steps;
        }
    }

第一点->在我获得所有步骤之前

代码语言:javascript
运行
复制
Fitness.HistoryApi.readDailyTotal

它返回一个数据点,其中包含每天的总步骤。第二点->然后我改变了方法,使每天的步骤使用

代码语言:javascript
运行
复制
Fitness.HistoryApi.readData

它返回数据点数组,并包含每天的步骤块。每个数据点的属性为

代码语言:javascript
运行
复制
dp.getOriginalDataSource().getStreamName()

这会返回类型,或者是传感器记录的步骤,或者是一个使用输入。这就是如何过滤用户输入步骤以避免应用程序中的步骤被黑客攻击的方法。

票数 5
EN

Stack Overflow用户

发布于 2019-01-09 09:58:28

基本上,Google文档中给出的示例表明,您可以使用这种方法获得设备的基本每日步骤总数。

您的应用程序可以通过使用记录API创建对DataType.TYPE_STEP_COUNT_CUMULATIVE数据类型的订阅来记录用户的步骤计数

在您的示例中,您将获得聚合数据,这是传感器记录步骤和使用历史API提取的数据的组合。

尝试查看您需要的必不可少的Google

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54093789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档