Tipos de dados personalizados

Caso seu app precise capturar informações que ainda não sejam cobertas por um dos tipos de dados existentes na plataforma Google Fit, crie um tipo de dados personalizado.

Criar tipos de dados personalizados

Crie ou especifique um tipo de dados personalizado para capturar dados personalizados. Ao criar tipos de dados personalizados, verifique se:

  • O nome do tipo de dados representa com precisão os dados.
  • O prefixo do nome do tipo de dado corresponde ao nome do pacote do seu app.

Android

Para criar um tipo de dados personalizado pela primeira vez, use o método 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

Os tipos de dados são uma propriedade de fontes de dados na API REST. Para capturar dados personalizados, crie uma fonte de dados e especifique o tipo de dados:

  1. Chame a API REST para criar uma nova origem de dados. Por exemplo, FlexibilityMeasure.
  2. Dê um nome exclusivo ao tipo de dados, que representa bem os dados que ele está capturando.

  3. Especifique os campos do tipo de dados e os formatos deles.

Método HTTP

POST

Request URL

https://www.googleapis.com/fitness/v1/users/me/dataSources

Corpo da solicitação

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

Resposta

Se a fonte de dados tiver sido criada, você receberá um código de status da resposta HTTP 200 OK. O corpo da resposta contém uma representação JSON da fonte de dados, incluindo uma propriedade datasource.dataStreamId. Use esse ID como o dataSourceId para adicionar dados.

Usar tipos de dados personalizados

Android

Converta o nome do tipo de dados personalizado de uma string (com.packagename.appname.custom_data_type) em um objeto DataType usando o método ConfigClient.readDataType. Use o objeto retornado para inserir e ler dados personalizados.

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

Para adicionar ou ler dados personalizados usando seus tipos de dados personalizados, você precisa de fontes de dados específicas. Para verificar as fontes de dados de um tipo de dado personalizado, envie uma solicitação GET para a API REST.

Adicionar dados personalizados

Para inserir dados personalizados, crie um conjunto de dados com novos pontos de dados. Especifique a fonte de dados que você criou para seu tipo de dados personalizado. Os pontos de dados precisam ter todos os campos e formatos corretos especificados no tipo de dados personalizado.

Como ler dados personalizados

Para ler dados personalizados, especifique a fonte que você criou para seu tipo de dado personalizado ao recuperar pontos de dados da plataforma Google Fit.