Niestandardowe typy danych

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:

  1. Wywołaj interfejs API REST, aby utworzyć nowe źródło danych. Na przykład: FlexibilityMeasure.
  2. Nadaj typowi danych unikalną nazwę, która ściśle odzwierciedla dane, które zbiera.

  3. 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.