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 nos 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 para os 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 atividades físicas, 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 localização que só podem ser lidos pelo app que os gravou.

Para mais informações, consulte:

Tipos de dados de saúde
Tipos de dados fornecidos pela plataforma que têm acesso restrito devido a dados potencialmente sensíveis. Para mais informações, consulte Tipos de dados de saúde.
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 personalizados privados
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 DataType classe. A forma como você invoca 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 para enviar uma solicitação de leitura para cada tipo de dados.
  • 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 gravar dados com metadados de sessão.

Para criar pontos de dados para um objeto instantâneo DataType, atribua valores com o formato correto. O exemplo a seguir mostra como atribuir o item alimentar como uma string, o tipo de refeição como uma constante da Field classe, e o conteúdo de nutrientes como valores de ponto flutuante 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 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 de campos) para cada fonte de dados. É possível especificar um desses tipos de dados ao criar fontes de dados e receber o nome do tipo de dados e uma lista de campos ao recuperar uma fonte de dados do repositório de fitness.

Por exemplo, uma representação de fonte de dados especifica o tipo de dados 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 um app a acessar. Eles ajudam os usuários a entender que tipos de dados um app quer acessar. Eles também facilitam a permissão de apps para usar esses dados, sem precisar aprovar cada tipo de dados individual. Os usuários concedem essas permissões depois de baixar o app.

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

Depois de testar o app com um pequeno número de usuários, antes de iniciar o app, é necessário solicitar a verificação com base nos escopos relevantes para 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 pressão arterial, ele precisará declarar que está fazendo a leitura e a gravação e solicitar os dois escopos. Se ele estiver apenas gravando dados de pressão arterial na plataforma Google Fit, só precisará solicitar o escopo de gravação.

Escolha os tipos de dados com responsabilidade. Não solicite todos os tipos de dados caso o app precise deles. Os tipos especificados determinam para quais escopos o usuário é solicitado a conceder permissão. Peça apenas os tipos de dados de que o app precisa para que os usuários tenham mais probabilidade de conceder acesso. Os usuários concedem acesso mais facilmente a escopos limitados e claramente descritos.

Use esta tabela para verificar se os escopos que o app precisa acessar são sensíveis ou restritos (o que determina as etapas de verificação que você precisa 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 da 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, porcentagem 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 da 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 localização da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.location.write Gravar dados de localização 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

Como adicionar novos escopos a um app atual

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

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

Os usuários terão mais probabilidade de conceder acesso se entenderem por que/como o app usa esses dados:

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

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