Users.dataSources

传感器数据的唯一来源的定义。数据源可以公开来自本地设备或配套设备上的硬件传感器的原始数据。它们还可以公开通过转换或合并其他数据源而创建的派生数据。同一数据类型可以存在多个数据源。插入此服务或从其中读取的每个数据点都有关联的数据源。

数据源包含足够的信息来唯一标识其数据,包括硬件设备和收集和/或转换数据的应用。它还保存有用的元数据,例如硬件和应用版本以及设备类型。

每个数据源都会生成具有唯一标识符的唯一数据流。并非所有对数据源的更改都会影响数据流标识符,因此同一应用/设备的更新版本收集的数据仍被视为属于同一数据流。

有关此类资源的方法列表,请参阅本页面的结尾部分。

资源表示法

{
  "dataStreamId": string,
  "name": string,
  "dataStreamName": string,
  "type": string,
  "dataType": {
    "name": string,
    "field": [
      {
        "name": string,
        "format": string,
        "optional": boolean
      }
    ]
  },
  "device": {
    "uid": string,
    "type": string,
    "version": string,
    "model": string,
    "manufacturer": string
  },
  "application": {
    "packageName": string,
    "version": string,
    "detailsUrl": string,
    "name": string
  },
  "dataQualityStandard": [
    string
  ]
}
属性名称 说明 备注
application nested object 将传感器数据馈送到平台的应用的相关信息。
application.detailsUrl string 可选 URI,可用于链接回应用。
application.name string 此应用的名称。REST 客户端必须执行此操作,但不强制要求此名称的唯一性。为方便其他开发者,我们提供它只是为了便于其他开发者识别应用程序或数据源是由哪个 REST 创建的。
application.packageName string 此应用的软件包名称。此标识符在 Android 应用创建时用作唯一标识符,但无法由 REST 客户端指定。REST 客户端会将其开发者项目编号反映在数据源数据流 ID 中,而不是 packageName 中。
application.version string 应用的版本。每当应用发生变化以影响数据计算时,您都应该更新此字段。
dataQualityStandard[] list 请勿填充此字段。它绝不会在来自平台的响应中填充,在查询中会被忽略。在将来的版本中,我们会将其完全删除。
dataStreamId string 此数据源生成的数据流的唯一标识符。标识符包括:

  • 实体设备的制造商、型号和序列号 (UID)。
  • 应用的软件包名称或名称。Android 应用创建数据源时会使用软件包名称。在 REST 客户端创建数据源时,将使用开发者项目编号。
  • 数据源的类型。
  • 数据源的流名称。
请注意,并非数据源的所有属性都会用作数据流标识符的一部分。具体而言,不使用硬件/应用的版本。这使我们能够通过版本更新保留相同的数据流。这也意味着,两个 DataSource 对象即使不相等,也可能表示同一个数据流。

Android 应用创建的数据流 ID 的确切格式为:type:dataType.name:application.packageName:device.manufacturer:device.model:device.uid:dataStreamName

REST 客户端创建的数据流 ID 的确切格式为:type:dataType.name:developer project number:device.manufacturer:device.model:device.uid:dataStreamName

如果数据流 ID 中包含的任何可选字段缺失,数据流 ID 中将省略这些字段。最小可行的数据流 ID 为:type:dataType.name:developer 项目编号

最后,当任何没有创建数据源的 REST 或 Android 客户端读取开发者项目编号和设备 UID 时,系统会对其进行混淆处理。只有数据源创建者可以看到清晰常规形式的开发者项目编号。这意味着客户端将看到与具有不同凭据的另一个客户端不同的 data_stream_ids 集。

dataStreamName string 数据流名称可以唯一地标识此特定数据源,与来自同一基础生产方的其他相同类型的数据源区分开来。设置数据流名称是可选的,但每当应用针对同一数据类型公开两个数据流时,或设备具有两个等效传感器时,都应该设置数据流名称。
dataType nested object 数据类型定义了 Fitness API 所收集数据、将数据插入 Fitness API 或从 Fitness API 查询的数据流的架构。
dataType.field[] list 字段表示数据类型的一个维度。
dataType.field[].format string 数据类型中每个字段支持的不同格式。

可接受的值包括:
  • blob
  • floatList
  • floatPoint
  • integer
  • integerList
  • map
  • string
dataType.field[].name string 定义数据的名称和格式。与数据类型名称不同,字段名称没有命名空间,只有在数据类型中必须是唯一的。
dataType.field[].optional boolean
dataType.name string 每种数据类型都有一个唯一的命名空间名称。com.google 命名空间中的所有数据类型都会作为平台的一部分进行共享。
device nested object 表示可容纳传感器的集成设备(如手机或穿戴式设备)。
device.manufacturer string 产品/硬件的制造商。
device.model string 最终用户可见的设备型号名称。
device.type string 表示设备类型的常量。

可接受的值包括:
  • chestStrap
  • headMounted
  • phone
  • scale
  • smartDisplay
  • tablet
  • unknown
  • watch
device.uid string 硬件的序列号或其他唯一 ID。当任何没有创建数据源的 REST 或 Android 客户端读取此字段时,系统会对其进行混淆处理。只有数据源创建者可以看到清晰且常规形式的 uid 字段。

混淆处理保持相等性;也就是说,给定两个 ID,如果 id1 == id2,则 obfuscated(id1) == obfuscated(id2)。

device.version string 设备硬件/软件的版本字符串。
name string 此数据源的最终用户可见名称。
type string 描述此数据源类型的常量。指明此数据源是生成原始数据还是派生数据。

可接受的值包括:
  • derived
  • raw

方法

create
创建在所属所有数据源中具有唯一性的新数据源 。

数据源是传感器数据的独特来源。数据源可能会公开 来自本地或配套设备上硬件传感器的原始数据。他们 还可以公开通过转换或合并其他数据而创建的派生数据 来源。同一数据类型可以存在多个数据源。所有数据 插入 Fitness API 或从 Fitness API 读取的每个数据集内都有一个 关联的数据源

每个数据源都会生成唯一的数据集更新流, 唯一数据源标识符。并非所有对数据源的更改都会影响 数据流 ID 的数据, 应用/设备仍可视为属于同一数据 来源。

数据源是使用服务器生成的字符串标识的, 正在创建的源的内容。dataStreamId 字段。它 将由服务器以正确的格式自动生成。如果 设置了 dataStreamId,则它必须与 生成什么内容。此格式由 数据源,并且具有特定顺序。如果不匹配, 将失败并报错。

指定未知类型的 DataType(从 “com.google.”)将创建采用自定义数据类型的 DataSource。 自定义数据类型只能由创建它们的应用读取。 自定义数据类型已弃用;使用标准数据类型 。

除了数据源 ID 中包含的数据源字段外, 创建数据时要进行身份验证的开发者项目编号 来源。读取时,系统会对此开发者项目编号进行混淆处理 由任何其他读取公开数据类型的开发者触发。
delete
删除指定的数据源。如果数据未删除, source 包含任何数据点。
get
返回指定的数据源。
list
列出使用 OAuth 对开发者可见的所有数据源 所提供的范围。该列表并未列出所有相关网址;用户可能拥有私有 仅对其他开发者可见的数据源,或使用 其他范围。
update
更新指定的数据源。dataStreamIddataTypetypedataStreamNamedevice 属性(version 除外) 无法修改。

数据源由其 dataStreamId 标识。