Planejar e revisar os tipos de dados do app Conexão Saúde

A plataforma Conexão Saúde armazena e estrutura dados de saúde e condicionamento físico. Ele também considera como diferentes tipos de dados são medidos. Esses tipos de dados incluem medições de frequência cardíaca realizadas imediatamente, contagem de passos ao longo do tempo e dados de sono realizados em sessões.

É importante entender primeiro quais tipos de dados e permissões a Conexão Saúde oferece para que você possa planejar os requisitos do seu app. Com isso, é necessário revisar os tipos de dados antes de finalizar os requisitos.

Categorias de tipo de dados

A Conexão Saúde oferece suporte a tipos de dados usados na maioria dos apps de saúde e fitness para oferecer a maior variedade possível. O objetivo da Conexão Saúde é oferecer uma visão abrangente e um armazenamento de dados de saúde e condicionamento físico. Esses tipos de dados se enquadram nas seguintes categorias:

  • Atividade: captura todas as atividades do usuário. Pode incluir atividades de saúde e fitness, como corrida, natação e sono.
  • Medidas corporais:captura dados comuns relacionados ao corpo, como o peso e a taxa metabólica basal de um usuário.
  • Monitoramento do ciclo: captura ciclos menstruais e pontos de dados relacionados, como o resultado binário de um teste de ovulação.
  • Nutrição: captura os tipos de dados de hidratação e nutrição. O primeiro representa a quantidade de água que um usuário consome em uma única bebida. Essa última opção inclui campos opcionais, como calorias, açúcar e magnésio.
  • Sono: captura dados de intervalos relacionados à duração e ao tipo de sono de um usuário.
  • Sinais vitais: captura informações essenciais sobre a saúde geral do usuário. Ele inclui dados como temperatura corporal, glicose no sangue, pressão arterial e saturação de oxigênio no sangue.

Formato do tipo de dados

Os tipos de dados na Conexão Saúde são armazenados em objetos que são subclasses de Record.

Para cada tipo de dados, há campos associados genéricos, como time e zoneOffset, ou específicos, como title, count e percentage. Alguns campos usam tipos simples, como long, double ou string, enquanto outros usam tipos complexos, como enumerações e classes, como Instant e ZoneOffset. Os atributos desses campos podem ser obrigatórios ou opcionais. Alguns atributos são somente leitura e outros são fixados em um intervalo específico de valores.

Para conferir a lista completa de tipos de dados disponíveis e os campos deles, consulte as classes no Jetpack.

Outros atributos de dados

Os dados da API Health Connect também incluem atributos de metadados descritos na lista a seguir:

  • ID do Conexão Saúde: cada ponto de dados recebe um identificador exclusivo (UID, na sigla em inglês) após a criação. Isso é útil para operações padrão de leitura e gravação. Consulte ID do Conexão Saúde para mais detalhes.
  • Horário da última modificação:marca o carimbo de data/hora da última instância em que um registro teve uma atualização. Ele é gerado automaticamente na primeira criação do registro ou em cada atualização.
  • Origem de dados:o Conexão Saúde armazena informações sobre o app de origem dos dados. Ele contém o nome do pacote dessa origem, que é adicionado automaticamente após a criação.
  • Dispositivo: o Conexão Saúde armazena informações sobre o dispositivo de origem dos dados. Ele contém o fabricante e o modelo do dispositivo, informados por você manualmente.
  • ID do cliente:o Conexão Saúde oferece IDs de cliente para que os apps cliente possam referenciar dados usando os próprios IDs, o que ajuda na resolução de conflitos e facilita a sincronização. Isso é fornecido ao registro manualmente.
  • Versão do registro do cliente:além do ID do cliente, a Conexão Saúde oferece o controle de versões para ajudar a rastrear mudanças durante a sincronização de dados. Isso é fornecido ao registro manualmente.
  • Método de gravação:a Conexão Saúde permite entender como os dados são gravados. Esses métodos incluem apps que registram dados de forma passiva (automática) e usuários que registram dados de forma ativa ou manual.

ID da Conexão Saúde

A Conexão Saúde atribui identificadores exclusivos (UIDs) a objetos de dados recém-inseridos, que identificam objetos de dados e os distinguem de outros. Os IDs da Conexão Saúde são úteis em solicitações de leitura ou gravação. Os IDs da Conexão Saúde não são idênticos aos IDs do cliente. Um app cliente atribui IDs do cliente, enquanto o Conexão Saúde atribui IDs do Conexão Saúde de forma exclusiva.

Não se esqueça das seguintes observações ao trabalhar com IDs do app Conexão Saúde:

  • As sessões têm um único ID da Conexão Saúde, mas os dados delas têm os próprios IDs.
  • Os IDs do Conexão Saúde não estão vinculados nem relacionados a carimbos de data/hora.
  • Alguns casos de uso podem exigir o armazenamento de um ID específico da Conexão Saúde durante um fluxo de trabalho. Por exemplo, um ID específico é necessário para recuperar e mostrar a um usuário a entrada de dados que ele acabou de registrar.

Tempo no Conexão Saúde

Todos os dados gravados na Conexão Saúde precisam especificar as informações de deslocamento da zona. Especificar o deslocamento da zona permite que os apps leiam os dados para representá-los em tempo civil. O tempo civil é o horário local e relevante para o usuário, mas não necessariamente no horário universal coordenado (UTC).

Em circunstâncias raras, o deslocamento de zona pode não estar disponível. Quando isso ocorre no Android 14 (nível 34 da API), a Conexão Saúde define o deslocamento de fuso horário com base no fuso horário padrão do sistema do dispositivo. No Android 13 e versões anteriores (nível 33 da API e versões anteriores), é possível gravar no Conexão Saúde sem especificar nenhuma informação de deslocamento de zona, o que precisa ser evitado sempre que possível.

Configuração de horário e fuso

A especificação das informações de deslocamento da zona durante a gravação de dados fornece informações de fuso horário ao ler dados no Conexão Saúde. No entanto, ela pode não fazer isso em determinadas situações, como quando o deslocamento da zona não é fornecido. Seu app precisa estar preparado para lidar com os dois tipos de dados de uma forma que faça sentido para suas circunstâncias específicas.

Permissões

Antes de solicitar uma permissão, o app precisa declará-la no manifesto. Consulte as tabelas a seguir para ver o mapeamento completo dos tipos de dados e das permissões deles.

Para 1.0.0-alpha10 e versões mais recentes

Tipo de classe de registro Ler e gravar a declaração de permissão
ActiveCaloriesBurned android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
BasalBodyTemperature android.permission.health.READ_BASAL_BODY_TEMPERATURE
android.permission.health.WRITE_BASAL_BODY_TEMPERATURE
BasalMetabolicRate android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE
BloodGlucose android.permission.health.READ_BLOOD_GLUCOSE
android.permission.health.WRITE_BLOOD_GLUCOSE
BloodPressure android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE
BodyFat android.permission.health.READ_BODY_FAT
android.permission.health.WRITE_BODY_FAT
BodyTemperature android.permission.health.READ_BODY_TEMPERATURE
android.permission.health.WRITE_BODY_TEMPERATURE
BodyWaterMass android.permission.health.READ_BODY_WATER_MASS
android.permission.health.WRITE_BODY_WATER_MASS
BoneMass android.permission.health.READ_BONE_MASS
android.permission.health.WRITE_BONE_MASS
CervicalMucus android.permission.health.READ_CERVICAL_MUCUS
android.permission.health.WRITE_CERVICAL_MUCUS
CyclingPedalingCadence android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
Distance android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE
ElevationGained android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
ExerciseSession android.permission.health.READ_EXERCISE
android.permission.health.WRITE_EXERCISE
FloorsClimbed android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
HeartRate android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE
HeartRateVariabilityRmssd android.permission.health.READ_HEART_RATE_VARIABILITY
android.permission.health.WRITE_HEART_RATE_VARIABILITY
Height android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT
Hydration android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION
IntermenstrualBleeding android.permission.health.READ_INTERMENSTRUAL_BLEEDING
android.permission.health.WRITE_INTERMENSTRUAL_BLEEDING
LeanBodyMass android.permission.health.READ_LEAN_BODY_MASS
android.permission.health.WRITE_LEAN_BODY_MASS
MenstruationFlow android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
MenstruationPeriod android.permission.health.READ_MENSTRUATION
android.permission.health.WRITE_MENSTRUATION
Nutrition android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION
OvulationTest android.permission.health.READ_OVULATION_TEST
android.permission.health.WRITE_OVULATION_TEST
OxygenSaturation android.permission.health.READ_OXYGEN_SATURATION
android.permission.health.WRITE_OXYGEN_SATURATION
Exercício planejado android.permission.health.READ_PLANNED_EXERCISE
android.permission.health.WRITE_PLANNED_EXERCISE
Energia android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
RespiratoryRate android.permission.health.READ_RESPIRATORY_RATE
android.permission.health.WRITE_RESPIRATORY_RATE
RestingHeartRate android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE
SexualActivity android.permission.health.READ_SEXUAL_ACTIVITY
android.permission.health.WRITE_SEXUAL_ACTIVITY
SkinTemperature androidx.health.permission.SkinTemperature.READ
androidx.health.permission.SkinTemperature.WRITE
SleepSession android.permission.health.READ_SLEEP
android.permission.health.WRITE_SLEEP
Speed android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
StepsCadence android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
Steps android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
TotalCaloriesBurned android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED
Vo2Max android.permission.health.READ_VO2_MAX
android.permission.health.WRITE_VO2_MAX
Weight android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT
WheelchairPushes android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

Para 1.0.0-alpha09 e versões anteriores

Tipo de classe de registro Ler e gravar a declaração de permissão
ActiveCaloriesBurned androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
BasalBodyTemperature androidx.health.permission.BasalBodyTemperature.READ
androidx.health.permission.BasalBodyTemperature.WRITE
BasalMetabolicRate androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE
BloodGlucose androidx.health.permission.BloodGlucose.READ
androidx.health.permission.BloodGlucose.WRITE
BloodPressure androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE
BodyFat androidx.health.permission.BodyFat.READ
androidx.health.permission.BodyFat.WRITE
BodyTemperature androidx.health.permission.BodyTemperature.READ
androidx.health.permission.BodyTemperature.WRITE
BodyWaterMass androidx.health.permission.BodyWaterMass.READ
androidx.health.permission.BodyWaterMass.WRITE
BoneMass androidx.health.permission.BoneMass.READ
androidx.health.permission.BoneMass.WRITE
CervicalMucus androidx.health.permission.CervicalMucus.READ
androidx.health.permission.CervicalMucus.WRITE
CyclingPedalingCadence androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE
Distance androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
ElevationGained androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
ExerciseSession androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE
FloorsClimbed androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE
HeartRate androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
HeartRateVariabilityRmssd androidx.health.permission.HeartRateVariabilityRmssd.READ
androidx.health.permission.HeartRateVariabilityRmssd.WRITE
Height androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Hydration androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
IntermenstrualBleeding androidx.health.permission.IntermenstrualBleeding.READ
androidx.health.permission.IntermenstrualBleeding.WRITE
LeanBodyMass androidx.health.permission.LeanBodyMass.READ
androidx.health.permission.LeanBodyMass.WRITE
MenstruationFlow androidx.health.permission.MenstruationFlow.READ
androidx.health.permission.MenstruationFlow.WRITE
Nutrition androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
OvulationTest androidx.health.permission.OvulationTest.READ
androidx.health.permission.OvulationTest.WRITE
OxygenSaturation androidx.health.permission.OxygenSaturation.READ
androidx.health.permission.OxygenSaturation.WRITE
Power androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
RespiratoryRate androidx.health.permission.RespiratoryRate.READ
androidx.health.permission.RespiratoryRate.WRITE
RestingHeartRate androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE
SexualActivity androidx.health.permission.SexualActivity.READ
androidx.health.permission.SexualActivity.WRITE
SleepSession androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE
Speed androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE
StepsCadence androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE
Steps androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
Vo2Max androidx.health.permission.Vo2Max.READ
androidx.health.permission.Vo2Max.WRITE
Weight androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE
WheelchairPushes androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE

Analisar os tipos de dados e as permissões

Agora que você planejou os tipos de dados e as permissões, é possível implementá-los durante o desenvolvimento.

Ao revisar seu app antes de fazer upload dele na Play Store, confira novamente a lista de tipos de dados e permissões exigidas pelo app. Isso permite declarar com precisão o uso de dados do app.

Ao se preparar para publicar o app na Play Store, declare o acesso aos tipos de dados da Conexão Saúde usados pelo app. Caso contrário, os usuários podem receber uma mensagem de erro informando que o app não pode acessar os tipos de dados da Conexão Saúde porque eles exigem uma aprovação especial.