自定义数据类型

如果您的应用需要捕获 Google 健身平台上的现有数据类型之一尚未涵盖的信息,您可以创建自定义数据类型。

创建自定义数据类型

创建或指定自定义数据类型以捕获自定义数据。创建自定义数据类型时,请确保:

  • 数据类型名称准确表示基础数据。
  • 数据类型名称的前缀与应用的软件包名称一致。

Android

如需首次创建自定义数据类型,请使用 ConfigClient.createCustomDataType 方法:

val request = DataTypeCreateRequest.Builder()
    // The prefix of your data type name must match your app's package name
    .setName("com.packagename.appname.custom_data_type") // Add some custom fields, both int and float
    .addField("field1", Field.FORMAT_INT32)
    .addField("field2", Field.FORMAT_FLOAT)
    // Add some common fields
    .addField(Field.FIELD_ACTIVITY)
    .build()

Fitness.getConfigClient(this, account)
    .createCustomDataType(request)
    .addOnSuccessListener { dataType ->
        // Use this custom data type to insert data into your app.
        Log.d(TAG, "Created data type: ${dataType.name}")
    }

REST

在 REST API 中,数据类型是数据源的属性。如需捕获自定义数据,您需要创建数据源,然后指定数据类型:

  1. 调用 REST API 以创建 新数据源。例如,FlexibilityMeasure
  2. 为数据类型指定一个唯一名称,该名称应能准确表示其捕获的数据。

  3. 指定数据类型的字段及其格式。

HTTP 方法

POST

Request 网址

https://www.googleapis.com/fitness/v1/users/me/dataSources

请求正文

{
  "dataStreamName": "FlexibilityMeasure",
  "type": "raw",
  "application": {
    "detailsUrl": "http://recoveryapps.com",
    "name": "Stretch Flex",
    "version": "1"
  },
  "dataType": {
    "name": "com.recoveryapps.stretchflex.flexibility",
    "field": [
     {
      "name": "ankle_range_degrees",
      "format": "integer"
     },
     {
      "name": "wrist_range_degrees",
      "format": "integer",
      "optional": true
     }
    ]
   }
}

答案

如果数据源创建成功,您将收到 200 OK HTTP 响应状态代码。响应正文包含数据源的 JSON 表示法,其中包括 datasource.dataStreamId 属性。使用此 ID 作为 dataSourceId 来添加数据。

使用自定义数据类型

Android

使用 ConfigClient.readDataType方法将自定义数据类型的名称从字符串 (com.packagename.appname.custom_data_type)转换为DataType对象。使用返回的对象来插入读取自定义数据。

Fitness.getConfigClient(this, account)
    .readDataType("com.packagename.appname.custom_data_type")
    .addOnSuccessListener { dataType ->
        // Use this custom data type to insert data into your app.
        Log.d(TAG, "Retrieved data type: ${dataType.name}")
    }

REST

如需使用自定义数据类型添加或读取自定义数据,您需要使用其数据源。如需检查自定义数据类型的数据源,请向 REST API 发送 GET 请求

添加自定义数据

如需插入自定义数据,请使用新的数据点创建数据集。指定您为自定义数据类型创建的数据源。数据点需要具有在自定义数据类型中指定的所有正确字段和格式。

读取自定义数据

如需读取自定义数据,请在从 Google 健身 平台检索数据点时,指定您为自定义数据类型创建的数据源。