如果應用程式需要擷取的資訊,不屬於 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
如要使用自訂資料類型新增或讀取自訂資料,必須有資料來源。如要查看自訂資料類型的資料來源,請向 REST API 傳送 GET 要求。
新增自訂資料
如要插入自訂資料,請建立含有新資料點的資料集。指定為自訂資料類型建立的資料來源。資料點必須包含自訂資料類型中指定的所有正確欄位和格式。
讀取自訂資料
如要讀取自訂資料,請從 Google 健身平台擷取資料點時,指定為自訂資料類型建立的資料來源。