会话可让用户快速轻松地查看所有主要会话的列表 已完成的活动它们会显示在 Google 健身应用日志页面中。对于 例如,呼吸课程、散步、跑步或夜间睡眠 会话示例。
会话对特定时间段内的数据集进行分组,此时间段 一个 activity。例如,如果用户跟踪了他们何时开始并完成 3 公里的行程 就可以创建一个课程以及该时间内的所有健身数据 都会与该时段关联起来。
会话本身不包含有关活动的详细信息。在 数据集。会话具有以下属性:
- 易记的描述性名称(例如“晨跑”)
- 广告内容描述
- 唯一标识符
- 它捕获的活动类型(例如跑步)
使用会话的优势
- 对用户很有用:会话可帮助您以 为用户提供有意义的方式他们可以在 Google 健身应用中的日志页面。
- 一致的用户体验:如果您的应用或配套设备允许活动 跟踪(用户可以开始和停止活动)、 通过这些锻炼活动,用户可以查看他们在这两个应用中的活动。
- 更全面的数据:Google 健身还会合并来自多个 来源,以补充和丰富您的会话信息。这为用户提供了 更全面地了解他们的活动
- 利用 Google 健身平台:如果您的用户不跟踪其活动,或者 您的应用不支持跟踪功能,您仍然可以在 Google 健身中读取活动数据。 您可以从健身商店查询详细或汇总数据,并查找 而无需实现自己的架构和 storage。
- 提高用户互动度:您可以向用户展示可进行的会话以及 创建它们的应用。以这种方式与其他健身应用互动 提升用户互动度
获取会话的用户授权
如果您想读取或写入会话,那么您的应用必须获取用户的 权限。对会话的访问权限使用相同的授权范围 作为数据类型,您应该按如下方式请求:
Android
使用适当的
方法(来自 FitnessOptions
)。
例如,要读取与跑步相关的课程,您可以选择:
val fitnessOptions = FitnessOptions.builder()
.accessActivitySessions(FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_SPEED, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_READ)
.build()
此示例指定您的应用想要访问活动会话元数据, 并指定了要在这些会话中读取的数据类型;该 本例中使用了心率、速度和位置数据类型。
REST
请求范围如下所示:
- 涉及睡眠活动类型的时段:
<ph type="x-smartling-placeholder">
- </ph>
https://www.googleapis.com/auth/fitness.sleep.read
https://www.googleapis.com/auth/fitness.sleep.write
- 所有其他会话:
<ph type="x-smartling-placeholder">
- </ph>
https://www.googleapis.com/auth/fitness.activity.read
https://www.googleapis.com/auth/fitness.activity.write
使用会话
Android
您可以使用 Sessions API 执行以下操作:
- 实时创建会议
- 在健身商店中插入课程
- 插入活动片段,以支持在锻炼期间暂停
- 读取与其关联的会话和数据集
- 启动另一个应用以显示其创建的会话的相关信息
- 在其他应用启动会话时接收 intent
REST
您可以使用 Sessions API 执行以下操作:
- 实时创建会议
- 在健身商店中插入课程
- 插入活动片段,以支持在锻炼期间暂停
- 读取与其关联的会话和数据集
数据集和细分如何与会话互动
在 Google 健身中:
- 数据集表示来自特定 API 的一组数据点, 特定时间段内的数据源数据。您可以将数据集插入到 。但如果您要创建会话,则创建会话可能更加简单, 会话及其数据集。
- 细分:按用户的确切活动对会话中的数据集进行分组 实际情况例如,如果用户跟踪 30 分钟的跑步数据( 但在此过程中使用了一小段时间,因此可以分解为 细分。先是跑步的一个环节,然后是步行休息时段,最后是 再次运行。
![](https://developers.google.cn/static/fit/images/timeline.png?authuser=9&hl=uk)
图 1 显示了应用 A、B 和 C 在健身存储区中插入应用的时间间隔 部分数据集和会话:
- 应用 A 将数据集 A1 和 A2 连同会话 1 和 A3 一起插入,而不受任何会话的影响。
- 应用 B 将数据集 B1 和 B2 与会话 2 一起插入。
- 应用 C 插入的数据集 C1 独立于任何会话。
从健身存储区读取课程数据时,所有属于 自动与该会话相关联 即使您在创建会话后插入数据,或创建 会话。例如,有关健身情况的查询 会话 1 中的数据将返回:
- 数据集 A1
- 数据集 A2
- 数据集 A3 中 t1 和 t2 之间的部分
- 数据集 C1 中介于 t1 和 t2 之间的部分
您可以判断是哪个应用插入了每个会话和数据集。
创建会话
您可以通过以下几种方式创建会话:
- 您的应用可以在以下任一位置主动创建会话:
<ph type="x-smartling-placeholder">
- </ph>
- 在用户主动跟踪设备上的活动时实时跟踪(仅限 Android),或者
- 手动插入即可。
- 当用户在 Google 健身应用中手动添加锻炼或活动时。
何时创建会话
你要添加睡眠数据吗?
- 是:创建一项练习并将其手动插入到健身数据存储区。 例如,插入睡眠时段。这个 是因为使用睡眠跟踪应用或设备的用户不会与设备互动 开始和停止睡眠活动(这是被动追踪)。
- 否 - 您的应用是否允许用户启动和停止 activity?
- 否 - 不创建会话。仅从您的应用添加数据集。
- 是 - 借助 Android API,如果用户跟踪以下内容,请实时创建会话 或手动设置。 使用 REST API,创建一个时段并将其手动插入健身商店。
- 您的应用能否检测到用户何时在其他设备上
详细程度(例如步行与跑步)?
- 是 - 添加细分。
- 否 - 只添加数据集。忽略 让 Google 健身被动创建这些细分
朗读会话
您的应用可以通过以下几种方式读取会话:
- 查找该会话创建/插入的具体会话
<ph type="x-smartling-placeholder">
- </ph>
- 名称或
- ID
- 按时间段查找其创建/插入的所有会话
- 按时间段查找所有应用(包括 Google 健身)创建的所有可用会话
了解哪些来源创建了会话
您可以向用户显示每个会话是由哪个应用或设备创建的。每个 会话具有关联的数据源,该数据源包含应用的相关信息或 收集或转换数据的设备。
Android
目前,您只能获取由 Android 应用写入的会话的软件包名称,
客户端。要获取创建了会话的应用的软件包名称,请使用
getAppPackageName
方法。您可以在应用中使用这些信息
其他哪些应用插入了健身课程的用户。您可以显示
以上每项
应用以帮助用户识别其身份。
您还可以触发 意图 启动其他应用以显示其创建的会话的详细信息。其他应用也可以 触发 intent 来启动您的应用。
详细了解如何查找 会话。
REST
要获取创建了会话的 Android 应用的软件包名称,请使用
session.application
属性。对于使用
REST API,请改用 session.name
属性。您可以使用
向用户展示哪些其他应用插入了健身数据
会话。您可以为每个应用显示图标以帮助用户识别
。
详细了解如何查找 会话。