Tipos de dados personalizados

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

Como 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 subjacentes.
  • O prefixo do nome do tipo de dados corresponde ao nome do pacote do 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

Na API REST, os tipos de dados são uma propriedade das fontes de dados. 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 represente bem os dados que estão sendo capturados.

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

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 corretamente, você vai receber um código de status de 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 dataSourceId para adicionar dados.

Como usar tipos de dados personalizados

Android

Converta o nome do seu 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 das fontes de dados. Para verificar as origens de um tipo de dados 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 dados personalizado ao recuperar pontos de dados da plataforma Google Fit.