Connessione Salute archivia e struttura i dati relativi a salute e attività fisica. Inoltre, tiene conto di come vengono misurati i diversi tipi di dati. Questi tipi di dati includono le misurazioni della frequenza cardiaca effettuate immediatamente, il conteggio dei passi effettuato nel tempo e i dati sul sonno raccolti in sessioni.
È importante innanzitutto comprendere quali tipi di dati e autorizzazioni offre Connessione Salute per poter pianificare i requisiti della tua app. Pertanto, devi rivedere i tipi di dati prima di poter finalizzare i requisiti.
Categorie di tipi di dati
Connessione Salute supporta i tipi di dati utilizzati nella maggior parte delle app per la salute e l'attività fisica per offrire la massima varietà possibile. Connessione Salute mira a offrire una visualizzazione e un archivio completi dei dati relativi a salute e attività fisica. Questi tipi di dati rientrano nelle seguenti categorie:
- Attività:acquisisce qualsiasi attività svolta da un utente. Può includere attività di salute e fitness come corsa e nuoto.
- Misurazione del corpo:acquisisce dati comuni relativi al corpo, ad esempio il peso di un utente e il suo metabolismo basale.
- Monitoraggio del ciclo:registra i cicli mestruali e i punti dati correlati, come il risultato binario di un test di ovulazione.
- Alimentazione:acquisisce i tipi di dati relativi a idratazione e alimentazione. Il primo rappresenta la quantità di acqua che un utente consuma in una singola bevuta. Questi ultimi includono campi facoltativi come calorie, zucchero e magnesio.
- Sonno:acquisisce i dati degli intervalli relativi alla durata e al tipo di sonno di un utente.
- Segni vitali: acquisisce informazioni essenziali sulla salute generale dell'utente. Include dati come temperatura corporea, glicemia, pressione sanguigna e saturazione di ossigeno nel sangue.
Formato del tipo di dati
I tipi di dati in Connessione Salute vengono memorizzati in oggetti che sono sottoclassi di
Record
.
Per ogni tipo di dati, esistono campi associati generici, come
time
e zoneOffset
, o specifici, come title
, count
e percentage
.
Alcuni campi utilizzano tipi semplici, come long, double o string, mentre altri utilizzano tipi complessi come enumerazioni e classi come Instant
e ZoneOffset
. Gli attributi di questi campi possono essere obbligatori o
facoltativi. Alcuni attributi sono di sola lettura e altri sono limitati a un intervallo specifico di valori.
Per l'elenco completo dei tipi di dati disponibili e dei relativi campi, consulta le classi in Jetpack.
Attributi dei dati aggiuntivi
I dati nell'API Connessione Salute includono anche gli attributi dei metadati descritti nel seguente elenco:
- ID Connessione Salute: a ogni punto di dati viene assegnato un identificatore univoco (UID) al momento della creazione. Questa funzionalità è utile per le operazioni di lettura e scrittura standard. Per ulteriori dettagli, vedi ID Connessione Salute.
- Ora dell'ultima modifica:questo timestamp indica l'ultima volta che un record è stato aggiornato. Viene generato automaticamente alla prima creazione del record o a ogni aggiornamento.
- Origine dati:Connessione Salute memorizza le informazioni sull'app da cui provengono i dati. Contiene il nome del pacchetto dell'origine, che viene aggiunto automaticamente al momento della creazione.
- Dispositivo:Connessione Salute memorizza le informazioni sul dispositivo da cui provengono i dati. Contiene il produttore e il modello del dispositivo, il cui valore deve essere fornito manualmente.
- ID client:Health Connect fornisce ID client in modo che le app client possano fare riferimento ai dati utilizzando i propri ID, il che aiuta a risolvere i conflitti e semplifica la sincronizzazione. Questo valore viene fornito manualmente al record.
- Versione del record client:insieme all'ID client, Connessione Salute fornisce il controllo delle versioni per facilitare il monitoraggio delle modifiche durante la sincronizzazione dei dati. Queste informazioni vengono fornite manualmente al record.
- Metodo di registrazione:Connessione Salute ti consente di capire come vengono registrati i dati. Questi metodi includono app che registrano i dati passivamente (automaticamente) e utenti che registrano i dati attivamente o manualmente.
ID Connessione Salute
Connessione Salute assegna identificatori univoci (UID) agli oggetti dati appena inseriti, che identificano gli oggetti dati e li distinguono dagli altri. Gli ID Connessione Salute sono utili nelle richieste di lettura o scrittura. Gli ID Connessione Salute non sono identici agli ID cliente. Un'app client assegna ID client, mentre Connessione Salute assegna esclusivamente ID Connessione Salute.
Tieni presente le seguenti note quando utilizzi gli ID Connessione Salute:
- Le sessioni hanno un unico ID Connessione Salute, ma i dati all'interno delle sessioni hanno i propri ID Connessione Salute.
- Gli ID Connessione Salute non sono collegati o correlati ai timestamp.
- Alcuni casi d'uso potrebbero richiedere l'archiviazione di un ID Connessione Salute specifico durante un flusso di lavoro. Ad esempio, è necessario un ID specifico per recuperare e mostrare a un utente la voce di dati appena registrata.
Tempo in Connessione Salute
Tutti i dati scritti in Connessione Salute devono specificare le informazioni sull'offset del fuso orario. La specifica dell'offset della zona consente alle app di leggere i dati per rappresentarli in ora civile. L'ora civile è l'ora locale e pertinente per l'utente, ma non necessariamente in UTC (Coordinated Universal Time).
In rari casi, l'offset della zona potrebbe non essere disponibile. Quando si verifica in Android 14 (livello API 34), Connessione Salute imposta l'offset del fuso orario in base al fuso orario predefinito del sistema del dispositivo. In Android 13 e versioni precedenti (livello API 33 e precedenti), è possibile scrivere in Connessione Salute senza specificare informazioni sull'offset del fuso orario, il che deve essere evitato il più possibile.
Impostazione di ora e zona
La specifica delle informazioni sull'offset del fuso orario durante la scrittura dei dati fornisce informazioni sul fuso orario durante la lettura dei dati in Connessione Salute. Tuttavia, potrebbe non riuscirci in determinate situazioni, ad esempio quando non viene fornito l'offset del fuso orario. La tua app deve essere preparata per gestire entrambi i tipi di dati, in modo sensato per le tue circostanze specifiche.
Autorizzazioni
Prima di richiedere qualsiasi autorizzazione, la tua app deve dichiararle nel manifest. Consulta le tabelle seguenti per il mapping completo dei tipi di dati e delle relative autorizzazioni.
Per la versione 1.0.0-alpha10 e successive
Riferimento autorizzazioni | Leggi la dichiarazione delle autorizzazioni |
---|---|
Operazioni di lettura in background |
android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
|
Letture della cronologia |
android.permission.health.READ_HEALTH_DATA_HISTORY
|
Tipo di classe di record | Dichiarazione delle autorizzazioni di lettura e scrittura |
---|---|
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 |
Distanza |
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 di esercizioVisualizza tutti i tipi di allenamentoEXERCISE_SESSION_TYPE_UNKNOWN EXERCISE_SESSION_TYPE_BADMINTON EXERCISE_SESSION_TYPE_BASEBALL EXERCISE_SESSION_TYPE_BASKETBALL EXERCISE_SESSION_TYPE_BIKING EXERCISE_SESSION_TYPE_BIKING_STATIONARY EXERCISE_SESSION_TYPE_BOOT_CAMP EXERCISE_SESSION_TYPE_BOXING EXERCISE_SESSION_TYPE_CALISTHENICS EXERCISE_SESSION_TYPE_CRICKET EXERCISE_SESSION_TYPE_DANCING EXERCISE_SESSION_TYPE_ELLIPTICAL EXERCISE_SESSION_TYPE_EXERCISE_CLASS EXERCISE_SESSION_TYPE_FENCING EXERCISE_SESSION_TYPE_FOOTBALL_AMERICAN EXERCISE_SESSION_TYPE_FOOTBALL_AUSTRALIAN EXERCISE_SESSION_TYPE_FRISBEE_DISC EXERCISE_SESSION_TYPE_GOLF EXERCISE_SESSION_TYPE_GUIDED_BREATHING EXERCISE_SESSION_TYPE_GYMNASTICS EXERCISE_SESSION_TYPE_HANDBALL EXERCISE_SESSION_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING EXERCISE_SESSION_TYPE_HIKING EXERCISE_SESSION_TYPE_ICE_HOCKEY EXERCISE_SESSION_TYPE_ICE_SKATING EXERCISE_SESSION_TYPE_MARTIAL_ARTS EXERCISE_SESSION_TYPE_PADDLING EXERCISE_SESSION_TYPE_PARAGLIDING EXERCISE_SESSION_TYPE_PILATES EXERCISE_SESSION_TYPE_RACQUETBALL EXERCISE_SESSION_TYPE_ROCK_CLIMBING EXERCISE_SESSION_TYPE_ROLLER_HOCKEY EXERCISE_SESSION_TYPE_ROWING EXERCISE_SESSION_TYPE_ROWING_MACHINE EXERCISE_SESSION_TYPE_RUGBY EXERCISE_SESSION_TYPE_RUNNING EXERCISE_SESSION_TYPE_RUNNING_TREADMILL EXERCISE_SESSION_TYPE_SAILING EXERCISE_SESSION_TYPE_SCUBA_DIVING EXERCISE_SESSION_TYPE_SKATING EXERCISE_SESSION_TYPE_SKIING EXERCISE_SESSION_TYPE_SNOWBOARDING EXERCISE_SESSION_TYPE_SNOWSHOEING EXERCISE_SESSION_TYPE_SOCCER EXERCISE_SESSION_TYPE_SOFTBALL EXERCISE_SESSION_TYPE_SQUASH EXERCISE_SESSION_TYPE_STAIR_CLIMBING EXERCISE_SESSION_TYPE_STAIR_CLIMBING_MACHINE EXERCISE_SESSION_TYPE_STRENGTH_TRAINING EXERCISE_SESSION_TYPE_STRETCHING EXERCISE_SESSION_TYPE_SURFING EXERCISE_SESSION_TYPE_SWIMMING_OPEN_WATER EXERCISE_SESSION_TYPE_SWIMMING_POOL EXERCISE_SESSION_TYPE_TABLE_TENNIS EXERCISE_SESSION_TYPE_TENNIS EXERCISE_SESSION_TYPE_VOLLEYBALL EXERCISE_SESSION_TYPE_WALKING EXERCISE_SESSION_TYPE_WATER_POLO EXERCISE_SESSION_TYPE_WEIGHTLIFTING EXERCISE_SESSION_TYPE_WHEELCHAIR EXERCISE_SESSION_TYPE_OTHER_WORKOUT EXERCISE_SESSION_TYPE_YOGA |
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 |
Altezza |
android.permission.health.READ_HEIGHT android.permission.health.WRITE_HEIGHT |
Idratazione |
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 |
Flusso mestruale |
android.permission.health.READ_MENSTRUATION android.permission.health.WRITE_MENSTRUATION |
MindfulnessSession |
android.permission.health.READ_MINDFULNESS android.permission.health.WRITE_MINDFULNESS |
Alimentazione |
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 |
Alimentazione |
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 |
Velocità |
android.permission.health.READ_SPEED android.permission.health.WRITE_SPEED |
Passi |
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 |
VO2max |
android.permission.health.READ_VO2_MAX android.permission.health.WRITE_VO2_MAX |
Peso |
android.permission.health.READ_WEIGHT android.permission.health.WRITE_WEIGHT |
Spinte in sedia a rotelle |
android.permission.health.READ_WHEELCHAIR_PUSHES android.permission.health.WRITE_WHEELCHAIR_PUSHES |
Per la versione 1.0.0-alpha09 e precedenti
Tipo di classe di record | Dichiarazione delle autorizzazioni di lettura e scrittura |
---|---|
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 |
Distanza |
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 di esercizioVisualizza tutti i tipi di allenamentoEXERCISE_TYPE_UNKNOWN EXERCISE_TYPE_BADMINTON EXERCISE_TYPE_BASEBALL EXERCISE_TYPE_BASKETBALL EXERCISE_TYPE_BIKING EXERCISE_TYPE_BIKING_STATIONARY EXERCISE_TYPE_BOOT_CAMP EXERCISE_TYPE_BOXING EXERCISE_TYPE_CALISTHENICS EXERCISE_TYPE_CRICKET EXERCISE_TYPE_DANCING EXERCISE_TYPE_ELLIPTICAL EXERCISE_TYPE_EXERCISE_CLASS EXERCISE_TYPE_FENCING EXERCISE_TYPE_FOOTBALL_AMERICAN EXERCISE_TYPE_FOOTBALL_AUSTRALIAN EXERCISE_TYPE_FRISBEE_DISC EXERCISE_TYPE_GOLF EXERCISE_TYPE_GUIDED_BREATHING EXERCISE_TYPE_GYMNASTICS EXERCISE_TYPE_HANDBALL EXERCISE_TYPE_HIGH_INTENSITY_INTERVAL_TRAINING EXERCISE_TYPE_HIKING EXERCISE_TYPE_ICE_HOCKEY EXERCISE_TYPE_ICE_SKATING EXERCISE_TYPE_MARTIAL_ARTS EXERCISE_TYPE_PADDLING EXERCISE_TYPE_PARAGLIDING EXERCISE_TYPE_PILATES EXERCISE_TYPE_RACQUETBALL EXERCISE_TYPE_ROCK_CLIMBING EXERCISE_TYPE_ROLLER_HOCKEY EXERCISE_TYPE_ROWING EXERCISE_TYPE_ROWING_MACHINE EXERCISE_TYPE_RUGBY EXERCISE_TYPE_RUNNING EXERCISE_TYPE_RUNNING_TREADMILL EXERCISE_TYPE_SAILING EXERCISE_TYPE_SCUBA_DIVING EXERCISE_TYPE_SKATING EXERCISE_TYPE_SKIING EXERCISE_TYPE_SNOWBOARDING EXERCISE_TYPE_SNOWSHOEING EXERCISE_TYPE_SOCCER EXERCISE_TYPE_SOFTBALL EXERCISE_TYPE_SQUASH EXERCISE_TYPE_STAIR_CLIMBING EXERCISE_TYPE_STAIR_CLIMBING_MACHINE EXERCISE_TYPE_STRENGTH_TRAINING EXERCISE_TYPE_STRETCHING EXERCISE_TYPE_SURFING EXERCISE_TYPE_SWIMMING_OPEN_WATER EXERCISE_TYPE_SWIMMING_POOL EXERCISE_TYPE_TABLE_TENNIS EXERCISE_TYPE_TENNIS EXERCISE_TYPE_VOLLEYBALL EXERCISE_TYPE_WALKING EXERCISE_TYPE_WATER_POLO EXERCISE_TYPE_WEIGHTLIFTING EXERCISE_TYPE_WHEELCHAIR EXERCISE_TYPE_OTHER_WORKOUT EXERCISE_TYPE_YOGA |
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 |
Altezza |
androidx.health.permission.Height.READ androidx.health.permission.Height.WRITE |
Idratazione |
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 |
Flusso mestruale |
androidx.health.permission.Menstruation.READ androidx.health.permission.Menstruation.WRITE |
Alimentazione |
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 |
Alimentazione |
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 |
Velocità |
androidx.health.permission.Speed.READ androidx.health.permission.Speed.WRITE |
Passi |
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 |
VO2max |
androidx.health.permission.VO2Max.READ androidx.health.permission.VO2Max.WRITE |
Peso |
androidx.health.permission.Weight.READ androidx.health.permission.Weight.WRITE |
Spinte in sedia a rotelle |
androidx.health.permission.WheelchairPushes.READ androidx.health.permission.WheelchairPushes.WRITE |
Rivedere i tipi di dati e le autorizzazioni
Ora che hai pianificato i tipi di dati e le autorizzazioni, puoi implementarli durante lo sviluppo.
Quando esamini la tua app prima di caricarla sul Play Store, controlla l'elenco dei tipi di dati e delle autorizzazioni richieste dalla tua app. In questo modo puoi dichiarare con precisione l'utilizzo dei dati della tua app.
Quando ti prepari a pubblicare la tua app sul Play Store, dichiara l'accesso ai tipi di dati di Connessione Salute utilizzati dalla tua app. In caso contrario, gli utenti potrebbero visualizzare un messaggio di errore che indica che la tua app non può accedere ai tipi di dati di Connessione Salute perché richiedono un'approvazione speciale.