如果應用程式需要擷取 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
要求網址
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
如要使用自訂資料類型新增或讀取自訂資料,您需要資料來源的資料來源。如要檢查自訂資料類型的資料來源,請傳送 GET
要求至 REST API。
新增自訂資料
如要插入自訂資料,請建立包含新資料點的資料集。指定您建立的資料來源。資料點需要在自訂資料類型中指定所有正確的欄位和格式。
讀取自訂資料
如要讀取自訂資料,請在從 Google Fit 平台擷取資料點時,指定您為自訂資料類型建立的資料來源。