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 ao longo de um intervalo de tempo

O Google Fit define tipos de dados para observações instantâneas e tipos de dados para dados agregados dados. 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 e hora e pontos de um tipo de dados agregados também inclui 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 a extensão "com.google" . Por exemplo, com.google.step_count.delta. Esses tipos de dados capturam leituras instantâneas dados de saúde e bem-estar, incluindo atividade de condicionamento físico, sono e nutrição. Qualquer um o app pode solicitar as permissões relevantes para ler e gravar nesses tipos de dados. com exceção de alguns tipos de dados de local, que só podem ser lidos pelo app escreveu.

Confira mais informações em:

Tipos de dados de saúde
Os tipos de dados fornecidos pela plataforma que têm acesso restrito devido a dados potencialmente sensíveis. Para mais informações, consulte Dados de saúde tipos.
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 Dados agregados tipos.
Tipos de dados personalizados particulares
Tipos de dados personalizados definidos por um app específico. Apenas o app que define o tipo de dados pode ler e gravar dados deste 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 . 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 dado que quiser registrar;
  • Para ler dados, use a API History e envie uma leitura para cada tipo de dados.
  • Para inserir dados históricos, use a API History a fim de envie uma solicitação de inserção para cada tipo de dado.
  • Para criar sessões, use a API Sessions para inserir ou gravar com metadados de sessão.

Para criar pontos de dados para um evento DataType atribua valores com o formato correto. O exemplo a seguir mostra como atribuir o alimento como uma string, o tipo de refeição como uma constante do Field, e conteúdos de nutrientes como valores flutuantes 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, é possível 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 dela) para cada fonte de dados. É possível especificar um desses tipos de dados quando você cria fontes de dados e pode conseguir o nome do tipo de dados e uma lista de seus campos quando você recupera uma fonte de dados da loja de condicionamento físico.

Por exemplo, uma representação de fonte de dados especifica seu 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 aos quais um usuário pode autorizar um app acesso. Elas ajudam os usuários a entender que tipos de dados um app quer acessar. Eles também facilitam a concessão de permissão aos apps para usar esses dados, por não terem para aprovar cada tipo de dados. Os usuários concedem essas permissões depois de fez o download do seu app.

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

Depois de testar o app com um pequeno número de usuários, antes de lançar o você precisa solicitar a verificação com base no 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, caso seu aplicativo precise ler e gravar dados de pressão arterial, precisa declarar que está fazendo leitura e gravação e solicitar os dois escopos. Se for gravando somente dados de pressão arterial na plataforma Google Fit, ele só precisa solicitar o escopo de gravação.

Escolha os tipos de dados com responsabilidade. Não solicite todos os tipos de dados caso seu app para os quais talvez precise deles. Os tipos especificados determinam quais escopos serão solicitados ao usuário conceder permissão. Peça apenas os tipos de dados de que o app precisa para que os usuários mais chances de conceder acesso. Os usuários concedem mais acesso a recursos limitados, os escopos descritos.

Use esta tabela para verificar se os escopos que o app precisa acessar são confidenciais ou restrita (que determina a verificação etapas que você precisará seguir):

Escopo Descrição Categoria
https://www.googleapis.com/auth/fitness.activity.read Ler dados de atividades da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.activity.write Gravar dados de atividades na plataforma Google Fit Restrito
https://www.googleapis.com/auth/fitness.blood_glucose.read Ler dados de glicose no sangue provenientes da plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.blood_glucose.write Gravar dados de glicose no sangue 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 medição corporal (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 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 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 nutricionais 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 aplicativo existente

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

É uma prática recomendada solicitar autorização dos usuários para recursos no momento quando precisar deles. Siga as diretrizes para solicitar uma API incremental autorização.

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

  • Considere adicionar uma tela que avise/informa aos usuários que será solicitado esses escopos.
  • Explique claramente por que seu aplicativo 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.