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 agregador 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 dado agregado 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.

Veja mais informações nos links abaixo:

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 tipo de atividade ou tempo. Para mais informações, consulte Tipos de dados agregados.
Tipos de dados personalizados particulares
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 como você invoca as APIs de condicionamento físico 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 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 anteriores, use a API History e envie 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 DataType instável, atribua valores com o formato correto. O exemplo a seguir mostra como atribuir o prato como uma string, o tipo de refeição como uma constante da classe Field e o conteúdo nutricional 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 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) de cada fonte de dados. Você pode especificar um desses tipos de dados ao criar fontes de dados e conseguir o nome do tipo de dado e uma lista dos campos ao recuperar uma fonte do armazenamento do 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 a acessar de um app. Eles ajudam os usuários a entender que tipos de dados um app quer acessar. Elas também facilitam a permissão para que os apps usem esses dados sem precisar aprovar cada tipo de dados individual. Os usuários concedem essas permissões depois de fazer o download do app.

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

Depois de testar seu app com um pequeno número de usuários, antes de lançar 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 uma pressão sanguínea de gravação, ele precisa declarar que está lendo e gravando e solicitar os dois escopos. Se estiver apenas gravando dados de pressão arterial na plataforma Google Fit, ela só precisará solicitar o escopo da gravação.

Escolha os tipos de dados com responsabilidade. Não solicite todos os tipos de dados se o app precisar dele. Os tipos especificados determinam para quais escopos o usuário é solicitado a conceder permissão. Solicite apenas os tipos de dados de que o app precisa. Assim, a probabilidade de os usuários concederem acesso será maior. Os usuários concedem acesso mais rápido a escopos limitados e claramente descritos.

Use esta tabela para verificar se os escopos aos quais seu app precisa de acesso são confidenciais 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 os 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 Leia dados de pressão arterial na 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 Leia dados de medição corporal (altura, peso e percentual de gordura corporal) na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.body.write Grave dados de medição corporal na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.body_temperature.read Leia dados de temperatura corporal na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.body_temperature.write Grave dados de temperatura corporal na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.heart_rate.read Leia 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 os 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 nutricionais 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 na plataforma Google Fit. Restrito
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Grave 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 Grave dados de sono na plataforma Google Fit. Restrito

Adicionar novos escopos a um app existente

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

É uma prática recomendada solicitar a autorização dos recursos para os usuários no momento necessário. Siga as diretrizes para solicitar uma autorização incremental.

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

  • Considere adicionar uma tela que avisa/informa aos usuários que eles serão solicitados para esses escopos.
  • Explique claramente por que o app está solicitando acesso a esses escopos/dados para que os usuários tomem decisões fundamentadas.

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