Пользовательские типы данных

Если вашему приложению необходимо собирать информацию, которая еще не охвачена ни одним из существующих типов данных на платформе Google Fit, вы можете создать собственный тип данных.

Создание пользовательских типов данных

Создайте или укажите пользовательский тип данных для сбора пользовательских данных. При создании пользовательских типов данных убедитесь, что:

  • Имя типа данных точно представляет базовые данные.
  • Префикс имени типа данных соответствует имени пакета вашего приложения.

Андроид

Чтобы создать пользовательский тип данных в первый раз, используйте метод 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 API. Чтобы собирать пользовательские данные, вам необходимо создать источник данных, а затем указать тип данных:

  1. Вызовите REST API, чтобы создать новый источник данных . Например, FlexibilityMeasure .
  2. Присвойте типу данных уникальное имя, которое точно соответствует собираемым данным.

  3. Укажите поля типа данных и их форматы.

HTTP-метод

POST

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
     }
    ]
   }
}

Ответ

Если ваш источник данных был создан успешно, вы получите код состояния ответа HTTP 200 OK . Тело ответа содержит JSON-представление источника данных, включая свойство datasource.dataStreamId . Используйте этот идентификатор в качестве dataSourceId для добавления данных.

Использование пользовательских типов данных

Андроид

Преобразуйте имя вашего пользовательского типа данных из строки (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}")
    }

ОТДЫХ

Чтобы добавлять или читать пользовательские данные с использованием ваших пользовательских типов данных, вам нужны их источники данных. Чтобы проверить источники данных пользовательского типа данных, отправьте запрос GET к REST API .

Добавление пользовательских данных

Чтобы вставить пользовательские данные, создайте набор данных с новыми точками данных. Укажите источник данных, который вы создали для своего пользовательского типа данных. Точки данных должны иметь все правильные поля и форматы, указанные в вашем пользовательском типе данных.

Чтение пользовательских данных

Чтобы прочитать пользовательские данные, укажите источник данных, который вы создали для своего пользовательского типа данных, при получении точек данных с платформы Google Fit.