Jeśli Twoja aplikacja musi zbierać informacje, których nie ma jeszcze na platformie Google Fit w żadnym z typów danych, możesz utworzyć niestandardowy typ danych.
Tworzenie niestandardowych typów danych
Utwórz lub określ niestandardowy typ danych do zbierania danych niestandardowych. Podczas tworzenia niestandardowych typów danych upewnij się, że:
- Nazwa typu danych dokładnie odzwierciedla dane bazowe.
Prefiks nazwy typu danych jest zgodny z nazwą pakietu aplikacji.
Android
Aby po raz pierwszy utworzyć niestandardowy typ danych, użyj metody 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
Typy danych są właściwościami źródeł danych w interfejsie API REST. Aby przechwytywać dane niestandardowe, musisz utworzyć źródło danych i określić jego typ:
- Wywołaj interfejs API REST, aby utworzyć nowe źródło danych. Na przykład:
FlexibilityMeasure
. Nadaj typowi danych unikalną nazwę, która ściśle odzwierciedla dane, które zbiera.
Określ pola typu danych i ich formaty.
Metoda HTTP
POST
URL żądania
https://www.googleapis.com/fitness/v1/users/me/dataSources
Treść żądania
{
"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
}
]
}
}
Odpowiedź
Jeśli źródło danych zostało utworzone, otrzymasz kod stanu odpowiedzi HTTP 200 OK
. Treść odpowiedzi zawiera reprezentację źródła danych w formacie JSON, w tym właściwość datasource.dataStreamId
. Użyj go jako identyfikatora dataSourceId
przy dodawaniu danych.
Używanie niestandardowych typów danych
Android
Przekonwertuj nazwę niestandardowego typu danych z ciągu znaków (com.nazwa_pakietu.appname.custom_data_type) na obiekt DataType
przy użyciu metody ConfigClient.readDataType
. Za pomocą zwróconego obiektu możesz wstawiać i odczytywać dane niestandardowe.
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
Aby dodawać lub odczytywać dane niestandardowe za pomocą niestandardowych typów danych, potrzebujesz ich źródeł danych. Aby sprawdzić źródła danych niestandardowego typu, wyślij żądanie GET
do interfejsu API REST.
Dodawanie danych niestandardowych
Aby wstawić dane niestandardowe, utwórz zbiór danych z nowymi punktami danych. Określ źródło danych utworzone na potrzeby niestandardowego typu danych. Punkty danych muszą zawierać wszystkie prawidłowe pola i formaty określone w niestandardowym typie danych.
Odczytywanie danych niestandardowych
Aby odczytywać dane niestandardowe, podaj źródło danych utworzone dla niestandardowego typu danych podczas pobierania punktów danych z platformy Google Fit.