首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Google Fit API -如何从历史客户端读取DataType.TYPE_STEP_COUNT_CADENCE

要使用Google Fit API从历史客户端读取步数频率(DataType.TYPE_STEP_COUNT_CADENCE),你需要遵循几个步骤来设置和执行数据读取请求。这里,我将提供一个基本的指南,展示如何在Android应用中实现这一功能。

步骤 1: 添加Google Fit API依赖

首先,确保你的Android项目中已经添加了Google Fit API的依赖。在你的build.gradle(Module: app)文件中添加以下依赖:

代码语言:javascript
复制
dependencies {
    implementation 'com.google.android.gms:play-services-fitness:20.0.0'
    implementation 'com.google.android.gms:play-services-auth:19.0.0'
}

步骤 2: 配置OAuth 2.0

确保你的应用已经配置了OAuth 2.0,以获取必要的权限来访问用户的健康数据。你需要在Google Cloud Console中设置OAuth同意屏幕,并获取客户端ID。

步骤 3: 请求必要的权限

在你的应用中,请求访问Google Fit数据的权限。对于步数频率,你需要请求如下权限:

代码语言:javascript
复制
FitnessOptions fitnessOptions = FitnessOptions.builder()
        .addDataType(DataType.TYPE_STEP_COUNT_CADENCE, FitnessOptions.ACCESS_READ)
        .build();

if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) {
    GoogleSignIn.requestPermissions(
        this,
        REQUEST_OAUTH_REQUEST_CODE,
        GoogleSignIn.getLastSignedInAccount(this),
        fitnessOptions);
} else {
    accessGoogleFit();
}

步骤 4: 读取数据

一旦用户授权,你可以使用HistoryClient来读取步数频率数据。以下是如何创建数据读取请求并从Google Fit获取数据的示例:

代码语言:javascript
复制
private void accessGoogleFit() {
    Calendar cal = Calendar.getInstance();
    cal.setTime(new Date());
    long endTime = cal.getTimeInMillis();
    cal.add(Calendar.YEAR, -1);
    long startTime = cal.getTimeInMillis();

    DataReadRequest readRequest = new DataReadRequest.Builder()
            .aggregate(DataType.TYPE_STEP_COUNT_CADENCE)
            .bucketByTime(1, TimeUnit.DAYS)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .build();

    Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this))
            .readData(readRequest)
            .addOnSuccessListener(response -> {
                // 处理数据
                if (response.getBuckets().size() > 0) {
                    for (Bucket bucket : response.getBuckets()) {
                        List<DataSet> dataSets = bucket.getDataSets();
                        for (DataSet dataSet : dataSets) {
                            showData(dataSet);
                        }
                    }
                }
            })
            .addOnFailureListener(e -> {
                Log.e("TAG", "There was a problem reading the data.", e);
            });
}

private void showData(DataSet dataSet) {
    for (DataPoint dp : dataSet.getDataPoints()) {
        for(Field field : dp.getDataType().getFields()) {
            Log.i("TAG", "\tField: " + field.getName() +
                " Value: " + dp.getValue(field));
        }
    }
}

注意事项

  • 确保你的应用在设备上正确登录了Google账户。
  • 检查你的网络连接,因为读取Google Fit数据需要网络。
  • 考虑用户隐私和数据安全,确保只请求你需要的数据权限。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 10 中身体活动数据的隐私保护

Google Fit 是我们在 2015 年推出的一个开放式平台。通过调用平台内置的 Google Fit API,开发者可以为应用添加丰富多样的追踪功能,随时随地记录用户的健康和运动状况。...API (活动识别) Google Fit Recording API (数据记录) 或 History API (历史数据) 如果您的应用仅使用由其它内置传感器提供的原始数据,例如加速传感器和陀螺仪...加强身体活动识别权限的管理 2019 年 12 月开始,如果应用未在清单文件中包含 Google Play 服务的旧版本活动识别权限,系统将限制这些应用的数据访问。...Google Fit 身体活动 API 在 Android 平台上,此项新权限会对 Google Fit API 中的部分数据类型造成影响。...com.google.activity.segment com.google.calories.expended HistoryAPI - 用于读取以下数据类型: com.google.step_count.delta

1.6K10
  • Google Play Services 7.5新增API及多项特性

    API方面,增加了Google云推送和Google Cast相关的API,同时在Android Wear设备上支持访问Google地图API。...智能密码锁 智能密码锁为了简化登陆流程,增加了名为CredentialsApi的API和UI,并允许我们对已保存的证书进行检索和保存以备后用。密码管理器是Chrome浏览器的密码管理器演变而来。...Google云推送 上面提到的实例ID与Google云推送紧密相关,Google云推送作为一个服务,既可以接收来自服务器端的信息也可以客户端向服务器端传送数据。...Google地图和Google Fit 正如一开始提到的,在Android Wear设备上可以使用Google地图API了。...Google Fit,用来构建健康应用解决方案,现在可以使用新增加的RecordingApi收集行走距离和燃烧的卡路里数据。

    1.1K20

    Airbnb 的统一支付数据读取流程

    支付统一数据读取层 为了实现目标,我们需要重新思考客户端如何与支付平台集成。 统一的入口点 我们的第一个任务是统一支付数据读取入口点。...呈现服务只与读取层打交道,不与个体支付服务通信 在这些入口点中,我们提供了尽可能多的过滤选项,让每个 API 都能够过滤和聚合客户端的复杂性。这也大大减少了需要公开的 API 的数量。...支付服务如何使用读优化的存储框架。它为离线和近实时的数据提供摄取流程, 并在二者之间共享业务逻辑 在结合上述的所有改进后,新的支付读取流程如下所示: 最终的支付数据读取架构。...我们以交易历史的数据为起点,推出新的 API 和高级实体,为类似领域的所有数据读取用例提供服务。 在确定了实体及其 Schema 之后,我们开始对数据进行去规范化。...客户支付历史统一读取层获得许多好处:一个新的统一实体和未来类似的应用场景,以及一个支持多种不同过滤器的可扩展 API

    40320

    gRPC-Gateway 快速实战

    今天来分享一波 gRPC-Gateway , 之前咱们有分享过什么是 gRPC 及其使用方式,可以看看这些关于 gRPC 的历史文章: gRPC介绍 gRPC 客户端调用服务端需要连接池吗?...gRPC-GateWay 简单原理介绍 基本环境创建 gRPC-GateWay 实战 gRPC-GateWay 简单原理介绍 如下是官网的一张基本原理图 gRPC-Gateway 是一个协议插件,它读取一个.../api 拷贝到咱们的 order 目录下 这个时候我们主要是后续实战会使用库里面的 annotations.proto ,他的作用就是将 HTTP 映射成 gRPC,目录是这样的 google/ ├─.../api/ ./ 接下来就可以进入到实战部分了,目前,我们的目录是这样的 my_grpcgateway/ ├── protoc │ └── order │ ├── google │...) returns (GetOrderRsp) { option (google.api.http) = { post: "/v1/order/getorder" body

    45830

    一键分析你的上网行为, 看看你平时上网都在干嘛?

    这里以绘制页面访问频率排名 柱状图为例子,讲讲如何使用plotly库进行绘制。...并且,为客户端上传的文件添加后缀,防止文件重复覆盖,最终将客户端上传的文件写入本地磁盘文件。...写入完毕后,使用sqlite读取本地磁盘文件,若读取正确,则返回解析后的数据,否则返回None 接下来,就是我们数据提取最核心的部分了,即从Chrome历史记录文件中提取出我们想要的数据。...如何获取Chrome历史记录文件 Windows Vista, Windows 7, Windows 8, Windows 10 历史记录文件位置: C:\Users\%USERNAME%\AppData...Mac OS X 历史记录文件位置: ~/Library/Application Support/Google/Chrome/Default/History 拷贝历史记录文件到桌面: bash # 打开

    1.1K10

    AIDog改造手记:使用TensorFlow 2.0

    接下来一行语句 base_model.trainable = False 表示基础模型中的参数不参与训练,其实这也容易理解,模型已经在ImageNet数据集上进行训练,学会了图像提取特征,这是在超大规模数据集上训练出的参数...是TensorFlow 1.3版本中引入的一个新的模块,主要服务于数据读取,构建输入数据的pipeline。...如果想要用到TensorFlow新出的Eager模式,就必须要使用Dataset API读取数据。 图像数据文件按照9:1的比例划分为训练数据集和验证数据集。...天无绝人之路,这个时候我们可以薅一薅Google的羊毛,之前我写过一篇文章: 谷歌GPU云计算平台,免费又好用 详细介绍过如何使用谷歌GPU云计算平台。...以上完整源代码,可以访问我google云端硬盘: https://colab.research.google.com/drive/1KSEky1xfBP5-R5WwUoYdpmXy2K5JzL5t

    92920

    现代浏览器内部机制 Part 2 | 导航这件小事

    当前窗口的 session 将会更新,刚导航到的页面会被后退/前进按钮记录到窗口的页面历史中。为了便于在关闭窗口时恢复页面,历史的会话记录会保存在本地的磁盘上。 ?...如果 Service Worker 提前设置了本地缓存中读取某一页面的数据,那么也就不需要发起网络请求了。...总结 在这篇文章中,我们检视了在导航时都发生了什么,以及 Web 应用的代码比如响应头和客户端的 JavaScript 代码是如何与浏览器进行交互的。...了解了浏览器是如何一步步网络中请求数据的,这能让我们更好的理解很多 API 比如导航预加载的诞生初衷。.../07/page-lifecycle-api#overview_of_page_lifecycle_states_and_events [8] 页面生命周期 API: https://developers.google.cn

    1.2K30

    系统设计面试的行家指南(下)

    Google Drive 下载文件 示例 API:https://api.example.com/files/download 参数: path:下载文件路径。...获取文件修订版 示例 API:https://api.example.com/files/list_revisions 参数: path:您想要获取修订历史的文件的路径。...同步冲突 对于 Google Drive 这样的大型存储系统,同步冲突时有发生。当两个用户同时修改同一个文件或文件夹时,就会发生冲突。我们如何解决冲突?...客户端如何知道文件是否被另一个客户端添加或编辑?客户端可以通过两种方式获知: 如果客户端 A 在线,而另一个客户端更改了文件,通知服务将通知客户端 A 某处发生了更改,因此它需要获取最新数据。...服务器宕机:如果一个服务器宕机,您可以使用另一个服务器进行读取操作,并使用另一个数据库服务器来替换出现故障的服务器。 通知服务失败:每个在线用户与通知服务器保持长时间的轮询连接。

    20610

    Keras vs tf.keras: 在TensorFlow 2.0中有什么区别?

    在本教程的第一部分中,我们将讨论Keras和TensorFlow之间相互交织的历史,包括他们共同的受欢迎程度如何相互滋养,彼此成长和滋养,从而使我们走向今天。...但是,现在情况正在发生变化——当Google在2019年6月发布TensorFlow 2.0时,他们宣布Keras现在是TensorFlow的官方高级API,可以快速,轻松地进行模型设计和训练。...如您所知,Keras和TensorFlow之间的历史悠久,复杂且交织在一起。...为了帮助您(自动)将代码keras更新为tf.keras,Google发布了一个名为tf_upgrade_v2脚本,该脚本顾名思义可以分析您的代码并报告需要更新的行——该脚本甚至可以执行为您进行升级的过程...而且,由于您的体系结构继承了Model类,因此您仍然可以调用.fit()、. compile()和.evaluate()之类的方法,从而维护易于使用(且熟悉)的Keras API

    2.7K30

    一文告诉你,如何使用Python构建一个“谷歌搜索”系统 | 内附代码

    我得想办法把这个问题图中提取出来。 似乎有很多服务可以提供文本提取工具,但是我需要某种API来解决此问题。最后,Google的VisionAPI正是我正在寻找的工具。...很棒的事情是,每月前1000个API调用是免费的,这足以让我测试和使用该API。 ? Vision AI 首先,创建Google云帐户,然后在服务中搜索Vision AI。...运行以下命令安装客户端库: pip install google-cloud-vision 然后通过设置环境变量GOOGLE_APPLICATION_CREDENTIALS,为应用程序代码提供身份验证凭据...但我们只需要纯描述,所以我响应中提取了这部分。 ? 在Google上搜索问题 下一步是在Google上搜索问题部分来获得一些信息。我使用正则表达式(regex)库描述(响应)中提取问题部分。...如果你想看看它是如何工作的,请检查我做的一个可以图片中解决考试问题的机器人。

    1.4K10

    The Google File System

    一旦写入,文件就只能被读取,而且通常只能按顺序读取。考虑到这种对大文件的访问模式,追加成为性能优化和原子性保证的重点。 第四,共同设计应用程序和文件系统API可以增加我们的灵活性,从而使整个系统受益。...来自同一客户端的连续操作经常读取某一文件的一个连续区域。小规模的随机读取通常在任意偏移位置读取若干KB大小。 这些工作负载还有许多大的、顺序的写操作,将数据附加到文件中。文件一旦写入,就很少再被修改。...链接到每个应用程序中的GFS客户端代码实现文件系统API,并与master和chunkserver通信,以代表应用程序读取或写入数据。...如果所有客户端总是看到相同的数据,无论他们哪个副本读取,那么文件区域就是consistent。...失败的变化使区域不一致(因此也undefined):不同的客户端可能在不同的时间看到不同的数据。 我们将在下面描述应用程序如何区分defined区域和undefined区域。

    29530

    Google Earth Engine 实现 LandTrendr 光谱-时间分割算法的指南(简介和土地趋势分析)

    LT-GEE 指南 俄勒冈州立大学eMapR 实验室的Justin Braaten撰写的文档、应用程序和 API ,由Robert Kennedy 博士指导 非常感谢杨志强 (OSU) 和 Google...它描述了 LT 概念框架、运行 LT-GEE 需要什么、如何运行它、输出是什么以及它们如何格式化。它还提供了三个示例脚本、一系列 LT 操作的用户界面以及一个用于固执但易于使用的 API。...我们假设您有一个GEE 账号,您对GEE JavaScript API有点熟悉,并且对 LandTrendr(方法,应用程序)有基本的了解。...在实践中,LandTrendr 像素的光谱历史中获取单一观点,如波段或指数,并通过一个过程来识别分隔光谱轨迹中持久变化或稳定时期的断点,并记录发生变化的年份发生了。...线段上的简单几何计算提供有关不同光谱时期的信息 2.1 Fit-to-Vertex 图像数据 在顶点之间插入新值的能力非常有用。它确保每个观察都与与像素所在位置和去向一致的轨迹对齐。

    38710

    现代浏览器探秘(part2):导航

    选项卡的会话历史记录将更新,因此后退/前进按钮将可以逐步浏览刚导航到的站点。为了便于在关闭选项卡或窗口时能够对选项卡/会话进行还原,会话的历史记录将被存储在磁盘上。 ?...图8:浏览器进程通过IPC通知渲染器进程它将要导航到另一个站点 如果导航是渲染器进程启动的(例如用户单击链接或客户端JavaScript执行window.location =“https://newsite.com...) 以及如何使用 页面生命周期 API (https://developers.google.com/web/updates/2018/07/page-lifecycle-api) 挂钩事件。...图12:浏览器进程中的UI线程启动渲染器进程,在并行启动网络请求的同时处理Service Worker 总结 在本文中,我们研究了导航过程中发生的事情,以及响应头和客户端JavaScript等Web应用代码是如何与浏览器交互的...了解浏览器通过网络获取数据的步骤,可以更容易地理解为什么开发导航预加载等API。 在下一篇文章中,我们将深入探讨浏览器如何处理HTML/ CSS/JavaScript来呈现页面。

    2K20

    【项目】用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼

    并且,为客户端上传的文件添加后缀,防止文件重复覆盖,最终将客户端上传的文件写入本地磁盘文件。...写入完毕后,使用sqlite读取本地磁盘文件,若读取正确,则返回解析后的数据,否则返回None 接下来,就是我们数据提取最核心的部分了,即从Chrome历史记录文件中提取出我们想要的数据。...如何获取Chrome历史记录文件 Windows Vista, Windows 7, Windows 8, Windows 10 历史记录文件位置: C:Users%USERNAME%AppDataLocalGoogleChromeUser...Mac OS X 历史记录文件位置: ~/Library/Application Support/Google/Chrome/Default/History 拷贝历史记录文件到桌面: bash # 打开...: ~/.config/google-chrome/Default/History 拷贝历史记录文件到桌面: bash # 打开terminal,输入以下命令, 自动将History文件复制到桌面, 文件名为

    1.1K30
    领券