A plataforma Conexão Saúde armazena e estrutura dados de saúde e condicionamento físico. Ela 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 realizada ao longo do tempo e dados de sono coletados 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 app. Com isso, você precisa revisar seus tipos de dados antes de finalizar os requisitos.
Categorias de tipos de dados
O 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 do 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 e natação.
- Medidas corporais:captura dados comuns relacionados ao corpo, como peso e 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. Os dados de hidratação representam a quantidade de água que um usuário ingeriu 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. 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 no Conexão Saúde são armazenados em objetos que são subclasses de
Record
.
Para cada tipo de dados, há campos associados que são 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 da 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 consultar 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, o Conexão Saúde oferece o controle de versão para ajudar a rastrear as mudanças durante a sincronização de dados. Isso é fornecido ao registro manualmente.
- Método de gravação:com o Conexão Saúde, você entende 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
O Conexão Saúde atribui identificadores exclusivos (UIDs) a objetos de dados recém-inseridos, que identificam e distinguem os objetos de dados de outros. Os IDs do 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 da Conexão Saúde de forma exclusiva.
Tenha em mente as seguintes observações ao trabalhar com IDs do Conexão Saúde:
- As sessões têm um único ID da Conexão Saúde, mas os dados delas têm IDs próprios.
- Os IDs da Conexão Saúde não são vinculados nem estão relacionados a carimbos de data/hora.
- Alguns casos de uso podem exigir o armazenamento de um ID específico do 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 no 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. Tempo civil é o horário local e relevante para o usuário, não necessariamente no horário universal coordenado (UTC, na sigla em inglês).
Em algumas circunstâncias raras, o deslocamento de zona pode não estar disponível. Quando isso acontece no Android 14 (nível 34 da API), a Conexão Saúde define o ajuste de fuso horário com base no fuso horário padrão do sistema do dispositivo. No Android 13 e em versões anteriores (nível 33 da API e versões anteriores), é possível gravar no Conexão Saúde sem especificar informações de deslocamento de zona, o que deve 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, por exemplo, 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. Confira o mapeamento completo dos tipos de dados e das permissões nas tabelas abaixo.
Para 1.0.0-alpha10 e versões mais recentes
Referência de permissões | Declaração de permissões de leitura |
---|---|
Leituras em segundo plano |
android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
|
Leituras do histórico |
android.permission.health.READ_HEALTH_DATA_HISTORY
|
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.READ_EXERCISE_ROUTE android.permission.health.WRITE_EXERCISE android.permission.health.WRITE_EXERCISE_ROUTE Tipo de exercícioEXERCISE_TYPE_BIKING EXERCISE_TYPE_BIKING_HAND EXERCISE_TYPE_BIKING_MOUNTAIN EXERCISE_TYPE_BIKING_ROAD EXERCISE_TYPE_BIKING_SPINNING EXERCISE_TYPE_BIKING_STATIONARY EXERCISE_TYPE_BIKING_UTURN EXERCISE_TYPE_CANOEING EXERCISE_TYPE_CROSSFIT EXERCISE_TYPE_DANCING EXERCISE_TYPE_ELLIPTICAL EXERCISE_TYPE_GOLF EXERCISE_TYPE_HORSEBACK_RIDING EXERCISE_TYPE_KAYAKING EXERCISE_TYPE_KICKBOXING EXERCISE_TYPE_MARTIAL_ARTS EXERCISE_TYPE_PILATES EXERCISE_TYPE_ROLLERBLADING EXERCISE_TYPE_RUNNING EXERCISE_TYPE_RUNNING_JOGGING EXERCISE_TYPE_RUNNING_SAND |
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 |
MindfulnessSession |
android.permission.health.READ_MINDFULNESS android.permission.health.WRITE_MINDFULNESS |
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 |
PlannedExerciseSession |
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 |
android.permission.health.READ_SKIN_TEMPERATURE android.permission.health.WRITE_SKIN_TEMPERATURE |
SleepSession |
android.permission.health.READ_SLEEP android.permission.health.WRITE_SLEEP |
Speed |
android.permission.health.READ_SPEED android.permission.health.WRITE_SPEED |
Etapas |
android.permission.health.READ_STEPS android.permission.health.WRITE_STEPS |
StepsCadence |
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 |
VO₂ máx. |
android.permission.health.READ_VO2_MAX android.permission.health.WRITE_VO2_MAX |
Peso |
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.Exercise.READ androidx.health.permission.Exercise.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 Tipo de exercícioEXERCISE_TYPE_BIKING EXERCISE_TYPE_BIKING_HAND EXERCISE_TYPE_BIKING_MOUNTAIN EXERCISE_TYPE_BIKING_ROAD EXERCISE_TYPE_BIKING_SPINNING EXERCISE_TYPE_BIKING_STATIONARY EXERCISE_TYPE_BIKING_UTURN EXERCISE_TYPE_CANOEING EXERCISE_TYPE_CROSSFIT EXERCISE_TYPE_DANCING EXERCISE_TYPE_ELLIPTICAL EXERCISE_TYPE_GOLF EXERCISE_TYPE_HORSEBACK_RIDING EXERCISE_TYPE_KAYAKING EXERCISE_TYPE_KICKBOXING EXERCISE_TYPE_MARTIAL_ARTS EXERCISE_TYPE_PILATES EXERCISE_TYPE_ROLLERBLADING EXERCISE_TYPE_RUNNING EXERCISE_TYPE_RUNNING_JOGGING EXERCISE_TYPE_RUNNING_SAND |
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.HeartRateVariability.READ androidx.health.permission.HeartRateVariability.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.Menstruation.READ androidx.health.permission.Menstruation.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 |
PlannedExerciseSession |
androidx.health.permission.PlannedExerciseSession.READ androidx.health.permission.PlannedExerciseSession.WRITE |
Energia |
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 |
Etapas |
androidx.health.permission.Steps.READ androidx.health.permission.Steps.WRITE |
StepsCadence |
androidx.health.permission.Steps.READ androidx.health.permission.Steps.WRITE |
TotalCaloriesBurned |
androidx.health.permission.TotalCaloriesBurned.READ androidx.health.permission.TotalCaloriesBurned.WRITE |
VO₂ máx. |
androidx.health.permission.VO2Max.READ androidx.health.permission.VO2Max.WRITE |
Peso |
androidx.health.permission.Weight.READ androidx.health.permission.Weight.WRITE |
WheelchairPushes |
androidx.health.permission.WheelchairPushes.READ androidx.health.permission.WheelchairPushes.WRITE |
Revise seus tipos de dados e permissões
Agora que você planejou os tipos de dados e as permissões, é possível implementá-los durante o desenvolvimento.
Ao revisar o app antes de fazer upload dele na Play Store, verifique novamente a lista de tipos de dados e permissões que ele exige. Isso permite que você declare com precisão o uso de dados do app.
Ao se preparar para publicar seu app na Play Store, declare o acesso aos tipos de dados do Conexão Saúde que seu app usa. Caso contrário, os usuários poderão receber uma mensagem de erro informando que o app não pode acessar os tipos de dados do Conexão Saúde porque eles exigem aprovação especial.