Tipos de dados

O Google Fit oferece um conjunto de tipos de dados de saúde e bem-estar no namespace com.google.

Os tipos de dados definem o formato dos valores dentro dos pontos de dados. Um ponto de dados pode representar:

  • Uma leitura ou observação instantânea
  • Um agregado com estatísticas em um intervalo de tempo

O Google Fit define tipos de dados para observações instantâneas e tipos de dados para dados agregados. Os pontos de dados consistem em valores dos campos de um tipo de dados e informações de carimbo de data/hora. Os pontos que representam observações instantâneas incluem um carimbo de data/hora, e os pontos de um tipo de dados agregados também incluem o horário de início do intervalo.

O Google Fit também permite definir novos tipos de dados.

Grupos de tipos de dados

O Google Fit tem estes tipos de dados:

Tipos de dados públicos
Os tipos de dados padrão fornecidos pela plataforma têm o prefixo "com.google". Por exemplo, com.google.step_count.delta. Esses tipos de dados capturam leituras instantâneas de dados de saúde e bem-estar, incluindo atividade física, sono e nutrição. Qualquer app pode solicitar as permissões relevantes para ler e gravar nesses tipos de dados, exceto alguns tipos de dados de local, que só podem ser lidos pelo app que os gravou.

Confira mais informações em:

Tipos de dados de saúde
Tipos de dados fornecidos pela plataforma que têm acesso restrito devido a dados potencialmente sensíveis. Para saber mais, consulte Tipos de dados de integridade.
Tipos de dados agregados
Tipos de dados para ler informações de saúde e bem-estar agregadas por tempo ou tipo de atividade. Para mais informações, consulte Tipos de dados agregados.
Tipos de dados particulares personalizados
Tipos de dados personalizados definidos por um app específico. Somente o app que define o tipo de dados pode ler e gravar dados desse tipo. Para mais informações, consulte Tipos de dados personalizados.

Como usar tipos de dados

Android

No Android, os tipos de dados são definidos como campos públicos da classe DataType. A forma de invocar as APIs Fitness com o tipo de dados depende do que você quer realizar:

  • Para gravar dados, use a API Recording para criar uma assinatura para cada tipo de dados que você quer gravar.
  • Para ler dados, use a API History e envie uma solicitação de leitura para cada tipo de dado.
  • Para inserir dados históricos do passado, use a API History para enviar uma solicitação de inserção para cada tipo de dados.
  • Para criar sessões, use a API Sessions para inserir ou registrar dados com metadados.

Para criar pontos de dados para um objeto DataType instantâneo, atribua valores com o formato correto. O exemplo abaixo mostra como atribuir o item alimentar como uma string, o tipo de refeição como uma constante da classe Field e o conteúdo de nutrientes como valores de flutuação mapeados.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

Depois de definir pontos de dados no seu app, você pode inserir, ler ou excluir dados históricos com a API History.

REST

O recurso dataSources inclui o tipo de dados e uma lista dos campos dele para cada fonte de dados. É possível especificar um desses tipos ao criar fontes de dados e você pode conferir o nome do tipo e uma lista dos campos dele ao recuperar uma fonte do armazenamento de dados de condicionamento físico.

Por exemplo, uma representação de fonte de dados especifica o tipo dela da seguinte maneira:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

Escopos de autorização

Os escopos de autorização abrangem grupos de tipos de dados que um usuário pode autorizar a acessar por um aplicativo. Elas ajudam os usuários a entender quais tipos de dados um app quer acessar. Eles também facilitam a concessão de permissões aos apps para usar esses dados, já que não precisam aprovar cada tipo de dado individual. Os usuários concedem essas permissões depois de fazer o download do seu app.

Exemplo da tela de permissão de escopos OAuth
Figura 2.A tela de consentimento dos escopos do OAuth.

Depois de testar o app com um pequeno número de usuários, antes de iniciá-lo, você precisa solicitar uma verificação com base nos escopos relevantes a esses tipos de dados. Leia as páginas de tipos de dados vinculadas acima para entender quais escopos se aplicam a cada tipo de dados.

Por exemplo, se o app precisar ler e gravar a gravação de pressão arterial, ele vai precisar declarar que está fazendo a leitura e a gravação e solicitar os dois escopos. Se for apenas gravar dados de pressão arterial na plataforma Google Fit, basta solicitar o escopo de gravação.

Escolha os tipos de dados com responsabilidade. Não solicite todos os tipos de dados caso seu app possa precisar deles. Os tipos especificados determinam para quais escopos o usuário precisa conceder permissão. Solicite apenas os tipos de dados que seu app precisa para que os usuários sejam mais propensos a conceder acesso. Os usuários concedem acesso mais rápido a escopos limitados e claramente descritos.

Use essa tabela para conferir se os escopos que seu app precisa acessar são confidenciais ou restritos, o que determina as etapas de verificação que você precisará seguir:

Escopo Descrição Categoria
https://www.googleapis.com/auth/fitness.activity.read Ler dados de atividade da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.activity.write Gravar dados de atividade na plataforma Google Fit Restrito
https://www.googleapis.com/auth/fitness.blood_glucose.read Ler dados de glicemia na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.blood_glucose.write Gravar dados de glicemia na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.blood_pressure.read Ler dados de pressão arterial da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.blood_pressure.write Gravar dados de pressão arterial na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.body.read Ler dados de medidas corporais (altura, peso, percentual de gordura corporal) da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.body.write Gravar dados de medidas corporais na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.body_temperature.read Ler dados de temperatura corporal da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.body_temperature.write Gravar dados de temperatura corporal na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.heart_rate.read Ler dados de frequência cardíaca na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.heart_rate.write Gravar dados de frequência cardíaca na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.location.read Ler dados de local da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.location.write Gravar dados de local na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.nutrition.read Ler dados de nutrição da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.nutrition.write Gravar dados de nutrição na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Ler dados de saturação de oxigênio da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Gravar dados de saturação de oxigênio na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.reproductive_health.read Ler dados de saúde reprodutiva da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.reproductive_health.write Gravar dados de saúde reprodutiva na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.sleep.read Ler dados de sono da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.sleep.write Gravar dados de sono na plataforma Google Fit. Restrito

Adicionar novos escopos a um app existente

Quando você atualiza seu app para solicitar um novo escopo (por exemplo, se adicionar os novos escopos de sono ou frequência cardíaca, ou adicionar um escopo de leitura), os usuários vão receber uma solicitação de que o app está solicitando acesso a esses escopos e podem optar por conceder ou rejeitar o acesso.

Recomendamos solicitar a autorização dos usuários para recursos no momento em que você precisar deles. Siga as diretrizes sobre como solicitar uma autorização incremental.

É mais provável que os usuários concedam acesso se entenderem por que/como o app usa esses dados:

  • Considere adicionar uma tela que avise/informa aos usuários que esses escopos serão solicitados.
  • Explique claramente por que seu app está solicitando acesso a esses escopos/dados para que os usuários possam tomar uma decisão informada.

Saiba mais sobre as práticas recomendadas sobre permissões de apps para Android.