如果您的应用需要捕获 Google Fit 平台上现有数据类型尚未涵盖的信息,您可以创建自定义数据类型。
创建自定义数据类型
创建或指定自定义数据类型以捕获自定义数据。创建自定义数据类型时,请确保:
- 数据类型名称可准确表示底层数据。
数据类型名称的前缀与应用的软件包名称一致。
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 中,数据类型是数据源的属性。拍摄 自定义数据,则需要创建数据源,然后指定数据类型:
- 调用 REST API 以创建新数据源。例如
FlexibilityMeasure
。 为数据类型指定一个能准确反映其所捕获数据的唯一名称。
指定数据类型的字段及其格式。
HTTP 方法
POST
Request URL
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 响应状态代码。响应正文包含
数据源,包括 datasource.dataStreamId
属性。使用此 ID 作为 dataSourceId
来添加数据。
使用自定义数据类型
Android
将自定义数据类型的名称从字符串转换
(com.packagename.appname.custom_data_type) 转换为 DataType
对象,方法是使用
ConfigClient.readDataType
方法。使用返回的对象插入和读取自定义数据。
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 Fit 平台检索数据点时,指定您为自定义数据类型创建的数据源。