作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在我的项目中使用 Google Fit Api 来获取用户的每日步数。但问题是,用户可以通过添加 Activity 来手动输入步骤。当我检索每日步数时,Google Fit Api 还会返回手动添加的步数。有什么方法可以区分手动添加的步骤和传感器记录的步骤。
最佳答案
这就是我解决这个问题的方法。
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;
}
}
第一点->在我使用
获得总步数之前Fitness.HistoryApi.readDailyTotal
返回一个数据点和每日总步数。第二点->然后我改变了使用
获取每日步数的方式Fitness.HistoryApi.readData
它返回包含每日步数 block 的数据点数组。每个数据点都有一个属性
dp.getOriginalDataSource().getStreamName()
返回类型,要么是传感器记录的步骤,要么是使用输入。这就是您可以过滤用户输入步骤以避免应用程序中的步骤被破解的方法。
关于android - 如何区分 Google Fit Api 中手动添加的步数和传感器记录的步数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54093789/
我不确定如何根据输入大小 N 确定运行时间,尤其是当它进入具有某些限制的循环时。这就是我尝试过的。我猜常数是正确的。它看起来如何? i = 1;
我想检索 1 小时前的步数。我不需要做任何特别的事情,我只需要知道用户自上一小时以来完成了多少步。 即使我的 iPhone 记录了一些步数,检索步数的查询返回“nil”。 这是代码: let c
我正在为 Android Wear 开发一款面部 watch 。我想读取 watch 计算的步数(显示在卡上的步数)。是否有任何简单的方法来访问数据?我的研究表明我可以创建自己的步数计数器(由于准确性
我是一名优秀的程序员,十分优秀!