使用 google fit api 的卡路里消耗

2023-12-09

我正在开发健身应用程序,为此我使用了 google fit api 。到目前为止,我成功地获取了步数、距离,但无法获取卡路里消耗。 提前致谢


您需要先设置用户的体重和身高。使用此信息计算消耗的卡路里。

这些是我用来做到这一点的方法。 (mClient是一个GoogleApiClient实例)

public static void saveUserHeight(int heightCentimiters) {
    // to post data
    float height = ((float) heightCentimiters) / 100.0f;
    Calendar cal = Calendar.getInstance();
    Date now = new Date();
    cal.setTime(now);
    long endTime = cal.getTimeInMillis();
    cal.add(Calendar.DAY_OF_YEAR, -1);
    long startTime = cal.getTimeInMillis();

    DataSet heightDataSet = createDataForRequest(
            DataType.TYPE_HEIGHT,    // for height, it would be DataType.TYPE_HEIGHT
            DataSource.TYPE_RAW,
            height,                  // weight in kgs
            startTime,              // start time
            endTime,                // end time
            TimeUnit.MILLISECONDS                // Time Unit, for example, TimeUnit.MILLISECONDS
    );

    com.google.android.gms.common.api.Status heightInsertStatus =
            Fitness.HistoryApi.insertData(mClient, heightDataSet)
                    .await(1, TimeUnit.MINUTES);
}

public static void saveUserWeight(float weight) {
    // to post data
    Calendar cal = Calendar.getInstance();
    Date now = new Date();
    cal.setTime(now);
    long endTime = cal.getTimeInMillis();
    cal.add(Calendar.DAY_OF_YEAR, -1);
    long startTime = cal.getTimeInMillis();

    DataSet weightDataSet = createDataForRequest(
            DataType.TYPE_WEIGHT,    // for height, it would be DataType.TYPE_HEIGHT
            DataSource.TYPE_RAW,
            weight,                  // weight in kgs
            startTime,              // start time
            endTime,                // end time
            TimeUnit.MILLISECONDS                // Time Unit, for example, TimeUnit.MILLISECONDS
    );

    com.google.android.gms.common.api.Status weightInsertStatus =
            Fitness.HistoryApi.insertData(mClient, weightDataSet)
                    .await(1, TimeUnit.MINUTES);
}

public static DataSet createDataForRequest(DataType dataType,
                                           int dataSourceType,
                                           Object values,
                                           long startTime,
                                           long endTime,
                                           TimeUnit timeUnit) {
    DataSource dataSource = new DataSource.Builder()
            .setAppPackageName(appContext)
            .setDataType(dataType)
            .setType(dataSourceType)
            .build();

    DataSet dataSet = DataSet.create(dataSource);
    DataPoint dataPoint = dataSet.createDataPoint().setTimeInterval(startTime, endTime, timeUnit);

    if (values instanceof Integer) {
        dataPoint = dataPoint.setIntValues((Integer) values);
    } else {
        dataPoint = dataPoint.setFloatValues((Float) values);
    }

    dataSet.add(dataPoint);

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

使用 google fit api 的卡路里消耗 的相关文章

随机推荐

  • Edge 浏览器似乎丢弃响应负载

    我有一个网络应用程序 可以将 PDF 返回到浏览器 该应用程序在 Chrome 和 Firefox 中运行良好 但在 Edge 版本 38 14393 0 0 中不起作用 响应标头如下所示 Access Control Allow Head
  • blit 错误的目标位置无效

    我收到这个错误 这是完整的回溯 Traceback most recent call last File C Users hobin PycharmProjects codeitPython Snake game py line 103 i
  • 为 Strapi 自定义 CKEditor 会出现“ckeditor-duplicated-modules”错误

    我尝试修改this存储库来自定义我想在我的 Strapi 项目中使用的 CKEditor 我添加了更多插件 这就是我的 ckeditor js 文件的样子 import ClassicEditorBase from ckeditor cke
  • Android 中获取相邻单元格返回 null

    我正在尝试获取 Android 中的相邻小区信息 但该功能getNeighboringCellInfo 总是返回 null 我使用了以下代码 protected void getCellInfo TelephonyManager telep
  • 动态创建包含子查询的 Linq 表达式

    我最近偶然发现了在运行时动态创建 Linq 表达式的问题 我发现的大多数示例都处理相当简单的任务 即仅将给定数据库实体的一个属性与单个参数进行比较 就像这样 Session Query Where m gt m Name Contains
  • 为什么 LINQ .Where(predicate).First() 比 .First(predicate) 更快?

    我正在做一些性能测试 并注意到像这样的 LINQ 表达式 result list First f gt f Id i Property 慢于 result list Where f gt f Id i First Property 这似乎违
  • joomla 垃圾邮件机器人错误

    在 joomla 2 5 中使用 widgetkit 地图 yotheme 的外部组件 当我插入电子邮件地址时 joomla 会检测到并给出此错误 该电子邮件地址已受到垃圾邮件机器人的保护 您需要启用 JavaScript 才能查看它 Ja
  • 集合已修改;枚举操作可能无法执行[重复]

    这个问题在这里已经有答案了 这个问题在这个论坛上被问过很多次了 我知道问题的解决方案 但我很好奇为什么 修改集合时无法执行枚举操作 List
  • 删除 pandas 数据框中未命名的列[重复]

    这个问题在这里已经有答案了 我有一个来自 A G 列的数据文件 如下所示 但是当我使用pd read csv data csv 它打印一个额外的unnamed无缘无故地列在最后 colA ColB colC colD colE colF c
  • 以编程方式在 IIS 中启用或禁用匿名身份验证

    我有一个 Web 应用程序 我需要为其用户提供将登录方法从 FormsAuth 切换到 WindowsAuth 的选项 我设法通过代码更改 web config 文件 Configuration config WebConfiguratio
  • 重用函数而无需实例化新类的最简单方法

    我目前有一个如下所示的函数 public void AnimateLayoutTransform object ControlToAnimate Does some stuff 我在很多不同的项目中使用这个函数 所以我希望它具有很强的可重用
  • 线程终止问题(C 编程)

    我正在开发一个使用 C 语言的 Linux 应用程序 它使用多个线程 由主函数生成的线程完成大部分工作 因此通常最后完成 我看到一些奇怪的行为 我相信这是由于主线程在生成的线程有机会完成其工作之前终止 下面是一些示例代码来说明我正在讨论的内
  • 详细订单中的 Woocommerce Short_Description

    我正在使用 Wordpress 和 Woocommerce 创建我的新网站 我想在订单详细信息中显示简短的描述 我找到了这段代码 add action woocommerce after shop loop item title wooco
  • 将设计添加到plotLabel Highcharts

    我正在制作 highchart 上的动态图表 我的问题是 有没有办法在我的绘图标签上添加设计 目前是这样的 我希望它看起来像这样 这是我的代码 function Highcharts setOptions global useUTC fal
  • Google App Engine + jQuery Ajax = 405 方法不允许

    必须有人能够解释我在这里做错了什么 我正在尝试创建最简单的 AJAX 发布到 Google App Engine 应用程序的示例 但我失败了 这是应用程序Python import cgi from google appengine api
  • 在 main 方法中使用 SwingUtilities.invokeLater()

    我最近看到一个MVC java应用程序 其中main方法编写为 public static void main String args SwingUtilities invokeLater new Runnable public void
  • Android:带有来自 attrs.xml 的对象引用的自定义视图,始终为 null

    我正在尝试设置对象之间的关系层次结构 每个对象都有一个与其自身类型相同的父对象 或者null 我有一个main xml其中包含其中一些
  • contenteditable div 内的 XY 插入坐标

    我正在寻找一种方法来获取 contenteditable div 内的插入符 x y 坐标 其方式与使用 window event 获取鼠标坐标类似 因为我需要在用户使用插入符的位置打开一个弹出窗口在 contenteditable div
  • 如何检查函数中多个变量中是否至少有一个等于 1?

    我有多个响应数据 这些数据已使用 cSplit e 分成单独的列 格式如下 ID Response IM2 IM4 IM10 IM16 1 1 4 7 10 NA 1 1 NA 2 2 7 5 16 8 NA NA NA 1 3 3 2 1
  • 使用 google fit api 的卡路里消耗

    我正在开发健身应用程序 为此我使用了 google fit api 到目前为止 我成功地获取了步数 距离 但无法获取卡路里消耗 提前致谢 您需要先设置用户的体重和身高 使用此信息计算消耗的卡路里 这些是我用来做到这一点的方法 mClient