会话数

会话可让用户快速轻松地查看他们执行的所有主要活动的列表。它们会显示在 Google 健身应用的“日记”页面中。例如,一次呼吸练习、一次散步、一次跑步或一晚睡眠都是会话的示例。

会话是指在特定时间段内收集的、在活动期间收集的数据集。例如,如果用户跟踪了自己开始和结束 3 公里跑的时间,系统可以创建一个会话,并将该时间段内的所有健身数据(例如步数、速度、距离)与该会话相关联。

会话本身不包含有关活动的详细信息。这是数据集中的数据。会话具有以下属性:

  • 描述性且易于理解的名称(例如“晨跑”)
  • 广告内容描述
  • 唯一标识符
  • 所记录的活动类型(例如跑步)

使用会话的好处

  • 对用户有用:会话有助于以对用户有意义的方式整理活动数据和锻炼数据。他们可以在 Google 健身应用的“日记”页面中查看当天的所有活动。
  • 一致的用户体验:如果您的应用或配套设备允许活动跟踪(用户可以开始和停止活动),那么为这些锻炼设置会话可让用户在两个应用中查看自己的活动。
  • 更完整的数据:Google 健身还会合并来自多个来源的数据,以补充和丰富您的锻炼信息。这样,用户就可以更全面地了解自己的活动。
  • 利用 Google 健身平台:如果用户不跟踪自己的活动,或者您的应用不支持跟踪,您仍然可以读取 Google 健身中的会话。 您可以查询健身数据存储区中的详细数据或汇总数据,并查找可用的锻炼项目,而无需实现自己的架构和存储空间。
  • 提高用户互动度:您可以向用户显示可用的会话以及创建这些会话的应用。以这种方式与其他健身应用互动有助于提高用户互动度。

获取会话的用户授权

如果您想读取或写入会话,则应用必须获得用户的许可。对会话的访问权限与数据类型使用相同的授权范围,您应按如下方式请求:

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

请求范围如下:

  • 包含睡眠活动类型的会话:
    • https://www.googleapis.com/auth/fitness.sleep.read
    • https://www.googleapis.com/auth/fitness.sleep.write
  • 所有其他会话:
    • https://www.googleapis.com/auth/fitness.activity.read
    • https://www.googleapis.com/auth/fitness.activity.write

使用会话

Android

您可以使用 Sessions API 执行以下操作:

  • 实时创建会话
  • 健身数据存储区中插入会话
  • 插入活动片段以支持在锻炼期间暂停
  • 读取会话以及与其关联的数据集
  • 启动另一个应用以显示有关其创建的会话的信息
  • 在其他应用启动会话时接收 intent

REST

您可以使用 Sessions API 执行以下操作:

  • 实时创建会话
  • 健身数据存储区中插入会话
  • 插入活动片段以支持在锻炼期间暂停
  • 读取会话以及与其关联的数据集

数据集和细分受众群如何与会话互动

在 Google 健身中:

  • 数据集表示特定数据源特定时间段内的一组数据点。数据集可以单独插入。不过,如果您要创建会话,最好同时创建会话及其数据集。
  • 细分会根据用户在会话期间执行的确切活动对会话中的数据集进行分组。例如,如果用户跟踪了 30 分钟的跑步(会话),但在此期间走了一小段路,则该会话可能会被分成多个细分。跑步时会有一个分段,然后是步行休息,接着是再次跑步。
图 1:不同的应用将会话和数据集添加到 [健身数据存储区]。

图 1 显示了健身数据存储区中的一个时间间隔,在此期间,应用 A、B 和 C 插入了一些数据集和会话:

  • 应用 A 插入了数据集 A1 和 A2(与会话 1 一起),以及数据集 A3(独立于任何会话)。
  • 应用 B 插入了数据集 B1 和 B2,以及会话 2。
  • 应用 C 独立于任何会话插入了数据集 C1。

健身数据存储区读取会话数据时,即使您在创建会话后插入数据,或者在被动跟踪数据后创建会话,系统也会自动将会话时间间隔内的所有健身数据与该会话相关联。例如,查询会话 1 中的健身数据会返回:

  • 数据集 A1
  • 数据集 A2
  • 数据集 A3 中介于 t1 和 t2 之间的部分
  • C1 数据集中介于 t1 和 t2 之间的部分

您可以知道每个会话和数据集是由哪个应用插入的。

创建会话

您可以通过几种不同的方式创建会话:

  • 您的应用可以在以下任一场景中主动创建会话:
    • 在用户在设备上主动跟踪某项活动时实时(仅限 Android),或者
    • 手动插入
  • 当用户在 Google 健身应用中手动添加锻炼或活动时。

何时创建会话

您是否要添加睡眠数据?

  • - 创建会话并手动将其插入健身数据存储区。 例如,插入睡眠时段。这是因为使用睡眠跟踪应用或设备的用户不会与设备互动来开始和停止睡眠活动(这是被动跟踪的)。
  • - 您的应用是否允许用户开始和停止活动?
    • - 不创建会话。仅添加来自您应用的数据集。
    • 可以 - 通过 Android API,如果用户跟踪自己的活动,则可以实时创建会话,也可以手动创建会话。借助 REST API,创建会话并手动将其插入健身数据存储区
    • 您的应用能否更详细地检测用户何时在进行不同的活动(例如,步行与跑步)?
      • - 添加细分。
      • - 仅添加数据集。暂时忽略分段,让 Google 健身被动创建这些分段。

读取会话

您的应用可以通过以下几种方式读取会话:

  • 查找由以下项创建/插入的特定会话:
    • 名称或
    • ID
  • 按时间段查找其创建/插入的所有会话
  • 按时间段查找所有应用(包括 Google 健身)创建的所有可用会话

了解哪些来源促成了会话

您可以向用户显示其每个会话是由哪个应用或设备创建的。每个会话都有一个关联的数据源,其中包含有关收集或转换数据的应用或设备的信息。

Android

目前,您只能获取由 Android 客户端写入的会话的软件包名称。如需获取创建会话的应用的软件包名称,请使用 getAppPackageName 方法。您可以在应用中使用此信息,向用户显示哪些其他应用插入了健身会话。您可以显示每个应用的图标,帮助用户识别这些应用。

您还可以触发 intent启动其他应用,从而显示这些应用创建的会话的详细信息。其他应用也可以触发 intent 来启动您的应用。

详细了解如何查找创建会话的来源

REST

如需获取创建会话的 Android 应用的软件包名称,请使用 session.application 属性。对于使用 REST API 创建的会话,请改用 session.name 属性。您可以在应用中使用此信息来向用户显示哪些其他应用插入了健身会话。您可以显示每款应用的图标,帮助用户识别这些应用。

详细了解如何查找创建会话的来源