如何区分 Google Fit Api 中手动添加的步数和传感器记录的步数

2024-01-12

我在我的项目中使用 Google Fit Api 来获取用户的每日步数。但问题是,用户可以通过添加活动来手动输入步骤。当我检索每日步数时,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

它返回包含每日步数块的数据点数组。每个数据点都有一个属性

dp.getOriginalDataSource().getStreamName()

它返回类型,要么是传感器记录的步骤,要么是使用输入。 这就是您可以过滤用户输入步骤以避免应用程序中的步骤被黑客攻击的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何区分 Google Fit Api 中手动添加的步数和传感器记录的步数 的相关文章

  • APK META-INF/library_release.kotlin_module 中复制的重复文件

    我最近通过 JitPack 添加了两个 Android 库 但出现以下错误 Duplicate files copied in APK META INF library release kotlin module 我已经清除了缓存 并尝试使
  • Android 构建 gradle 在特定设备上失败

    我面临一个奇怪的问题 当我编译我的应用程序以在 Android 7 0 的设备上运行它时 它可以工作 但是当我尝试为 Android 4 2 1 的设备进行编译时 它会失败并出现以下错误 错误 任务 app transformClasses
  • Android,让文本切换器成为中心?

    如何集中我的文本切换器 我尝试过设置重力 但似乎不起作用 ts setFactory new ViewFactory public View makeView TextView t new TextView this t setTypefa
  • Android Studio磁盘空间不足如何解决?

    我随机收到此错误 并且不确定为什么 Android Studio 的磁盘空间变低 Android Studio 系统目录分区磁盘空间不足 Update 此应用程序安装在运行 10 10 1 的 Mac 上 具有 251GB 内部存储和占用
  • Android 上通过 JSCH 的基本 SSH 连接

    作为来自此的用户question https stackoverflow com questions 14323661 simple ssh connect with jsch和这个tutorial http eridem net andr
  • 将寻呼机视为列表视图行项目

    我有一个包含 20 行的列表视图 我想为列表视图中的每一行设置一个视图寻呼机 由于列表视图的行中的项目可能是一个或多个 并且我想使用视图分页器显示列表视图行项目 为此 我使用以下代码 将显示在列表视图行中的自定义布局 作为分页器项目
  • 从Asynctask返回结果

    如果我的 Android 应用程序中有这个后台工作文件 并且它从我的数据库获取数据 我如何将字符串 结果 传递给另一个类 后台工作人员连接到我的服务器 然后使用 php 连接到数据库 public class BackgroundWorke
  • 在 Android 中关闭 Spinner 中的下拉菜单

    在 Android 中打开和关闭微调器时 我需要为箭头图标设置动画 打开微调器时我可以旋转箭头 我只是放了一个setOnTouchListener on the Spinner 当下拉菜单关闭或隐藏时 问题就来了 因为我不知道如何在该操作上
  • Android Things 文件系统

    我正在 Android 上构建这个应用程序 我希望能够让它访问 U 盘上的媒体文件 甚至树莓派的 SD 卡上的媒体文件 我还不知道我将如何处理这些文件 但我只是想知道它是否可能 如果不是这样也没关系 我还有其他解决方案 但我想我会先从明显的
  • android studio 底部工具栏的“运行”选项卡消失了

    Android Studio 底部工具栏中曾经有一个 运行 选项卡 但该选项卡不再显示 怎么把它带回来 请检查下图以了解它消失之前的位置 Run 选项卡曾经位于 TODO 选项卡之前的红色圆圈中 查看 gt 工具窗口 gt 运行 Or us
  • Android接收通知打开和取消事件

    我从 webService 接收数据以生成自定义通知 我想追踪Intent要知道open 点击 或cancel 滑动 通知上的事件 以报告服务器进行分析 有没有听众onIntentStart or onIntentCanceled 也许是通
  • 将搜索结果更新为 Android 中的 Lazy Adapter

    我有项目列表 想为其实现搜索功能 因此 我有一个带有 addTextChangedListener 的文本框 搜索结果运行良好 但当我尝试将结果设置为 ListView 时 新结果将附加到旧结果中 我正在使用惰性适配器 如何清除适配器中的旧
  • Android - 内容值覆盖现有行

    我正在尝试使用插入值ContentValues 我已将 5 个值插入到 5 列中 运行应用程序后 我只有最后一组值的行ContentValues 前四组未插入 ContentValues cv new ContentValues cv pu
  • 使用startActivityForResult,如何获取子活动中的requestCode?

    我有四项活动 即 A B C 和 D 我的情况是A将通过startActivityForResult启动活动B startActivityForResult new Intent this B class ONE 在另一种情况下 我将使用不
  • UnsupportedOperationException:特权进程中不允许使用 WebView

    我在用android sharedUserId android uid system 在我的清单中获得一些不可避免的权利 从 HDMI 输入读取安卓盒子 http eweat manufacturer globalsources com s
  • 使用 eclipse 配置mockito 时出现问题。给出错误:java.lang.verifyError

    当我将我的mockito库添加到类路径中 并使用一个简单的mockito示例进行测试时 我尝试使用模拟对象为函数add返回错误的值 我得到java lang verifyerror 以下是用于测试的代码 后面是 logcat Test pu
  • 在Android中提取视频帧

    我想知道是否可以从 Android 中正在运行的视频中提取帧 我需要定期提取帧并将其发送以进行进一步处理 有人能为我找到答案吗 Thanks Abhi 您可以使用媒体元数据检索器 http developer android com ref
  • 如何用 XML 制作双渐变(类似 iphone)

    如何使用 XML 制作这种可绘制渐变 我可以做一个从颜色 A 到颜色 B 的简单渐变 但我不知道如何在同一个可绘制对象中组合两个渐变 我终于找到了一个带有图层列表的解决方案 这对我来说已经足够好了
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下
  • Android:列“_id”不存在

    我收到这个错误 IllegalArgumentException 列 id 不存在 当使用SimpleCursorAdapter从我的数据库中检索 该表确实有这个 id柱子 注意到这是一个常见问题 我尝试根据网上的一些解决方案来解决它 但它

随机推荐

  • 读取从 FileChannel 到 Stream of strings 的所有行

    对于我的特定任务 我需要从中读取数据FileChannel to a Stream or Collection of String s 在常规的NIO for a Path我们可以使用一个方便的方法Files lines 它返回一个Stre
  • 是否可以通过编程方式设置 gdb 观察点?

    我想在我的 C 程序中临时设置一个观察点 硬件写入中断 以查找内存损坏 我已经看到了通过 gdb 手动执行此操作的所有方法 但我想通过代码中的某种方法实际设置观察点 这样我就不必闯入 gdb 找出地址 设置观察点 然后继续 就像是 defi
  • 在sqlite3中合并两个表

    我在两个独立的 sqlite3 数据库中有两个表 数据类型相同 但架构略有不同 我希望它们成为单个数据库中的单个表 具有相同的架构Table 2 Table 1 CREATE TABLE temp entries id INTEGER PR
  • pandas 字符串转数字

    我有一组数据 例如 a b 0 type 1 True 1 type 2 False 如何保留列的数字部分a同时将 ture 转为 1 将 false 转为 0 下面是我想要的 a b 0 1 1 1 2 0 您可以将布尔值转换为整数 如下
  • 通过 CPAN 安装需要自定义选项的 Perl 模块

    有几次我遇到安装时需要自定义标志的模块 例如 现在我陷入了 Net ZooKeeper 它需要 zookeeper include 和 zookeeper lib 设置 有没有办法可以在 cpan shell 中设置这些 或者我只需要手动构
  • 分配给 NumPy 中的列

    如何使用 NumPy 编写以下 MATLAB 代码 A zeros 5 100 x ones 5 1 A 1 x 分配给行似乎很容易 但我找不到将数组分配给另一个数组的列的示例 Use a 1 x 0 你需要x 0 选择列x作为单个 num
  • 为什么我不能在 Haskell 中将 Integer 添加到 Double ?

    为什么我可以这样做 1 2 0 但当我尝试时 let a 1 let b 2 0 a b
  • Spring物理事务和逻辑事务的区别

    在这份春季文件中http static springsource org spring docs 3 2 x spring framework reference html transaction html http static spri
  • 为什么我的风格没有被应用?

    我的问题与这个帖子 https stackoverflow com questions 10231095 why doesnt my text block style get applied 但由于这篇旧文章四年来都没有答案 我想也许对于为
  • Android:设置“shrinkResources true”以保留所有可绘制对象,但删除其他未使用的资源

    我有一个包含很多可绘制对象的项目 这些可绘制对象以 a 或 b 开头 例如a1 back a2 back b1 start b2 start 等等 这些可绘制对象不在代码中使用 但由以下代码使用 String name image getN
  • Java实现周期性刷新Cache

    我的用例是对持久数据库中存储的数据维护内存缓存 我使用这些数据来填充 UI 上的条目列表 地图 在任何给定时间 UI 上显示的数据应尽可能更新 这可以通过缓存的刷新频率来完成 常规缓存实现与此特定缓存之间的主要区别在于 它需要定期批量刷新所
  • 在 Laravel 4 中将数据传递给闭包

    我正在尝试使用 Laravel 4 中的 Mail 类 但无法将变量传递给 m 对象 team 对象包含我用 eloquent 从数据库中获取的数据 Mail send emails report data function m m gt
  • 使用 C++ 从 OSX 中的 HIDManager 获取鼠标事件

    我正在将游戏从 PC 移植到 osx 但我遇到了输入事件的问题 主游戏窗口是一个与 C 后端交互的可可应用程序 PC 代码使用 DirectInput 和 Windows 消息来生成游戏可以理解的键盘和鼠标事件 当我第一次启动该端口时 我用
  • 逗号运算符什么时候有用?

    I read this https stackoverflow com questions 3561043 javascript syntax what comma means关于表达式中 逗号运算符 的问题 和MDN docs https
  • 使用 lodash 在另一个数组内的数组中查找值

    我有一个数组 例如 var db words word1a word1b word1c answer answer1 words word2a words2b answer answer2 我在 node js 上使用 lodash 来检查
  • 在谷歌云存储上上传图像时文件大小为零字节---nodejs?

    这是我的代码 const fs require fs const uuidv4 require uuid v4 const Storage require google cloud storage const CLOUD BUCKET pr
  • SQL繁琐添加数组作为参数

    我正在运行这个 SQL 查询tedious js使用参数 var query select from table name where id in ids request new sql Request query function err
  • Laravel Pluck 但结合名字+姓氏进行选择

    在 Laravel Vue 项目中使用 select2 并需要返回以下格式的 JSON id 0 text enhancement id 1 text bug 在 Laravel 中 我知道我可以使用 pluck 来创建列表数据 例如对于客
  • Google 地图信息窗口关闭按钮被隐藏

    我在我的网站中使用了带有多个标记和多个信息窗口的 Google 地图 不知何故 关闭按钮 小x 隐藏在信息窗口内 但如果在应显示的位置单击则可以使用 如何解决这个问题 修复了它 显然 bootstrap css 与图像冲突 必须使用这几行额
  • 如何区分 Google Fit Api 中手动添加的步数和传感器记录的步数

    我在我的项目中使用 Google Fit Api 来获取用户的每日步数 但问题是 用户可以通过添加活动来手动输入步骤 当我检索每日步数时 Google Fit Api 还会返回手动添加的步数 有什么方法可以区分手动添加的步骤和传感器记录的步