Tipos de dados personalizados

Caso seu aplicativo precise capturar informações que ainda não tenham sido cobertas por um dos tipos de dados existentes na plataforma Google Fit, é possível criar um tipo de dado 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 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

Os tipos de dados são uma propriedade das fontes de dados na API REST. Para capturar dados personalizados, você precisa criar uma fonte de dados e especificar o tipo de dados:

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

  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 uma solicitação HTTP 200 OK código de status da resposta. O corpo da resposta contém uma representação JSON a fonte de dados, incluindo uma propriedade datasource.dataStreamId. Usar este ID como dataSourceId para adicionar dados.

Como usar tipos de dados personalizados

Android

Converter o nome do seu tipo de dados personalizado de uma string (com.packagename.appname.custom_data_type) em um objeto DataType usando o 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 dos dados deles de dados. Para verificar as origens de dados de um tipo personalizado, envie um GET para a API REST.

Adicionar dados personalizados

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

Leitura de dados personalizados

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