Pianifica e rivedi i tipi di dati di Connessione Salute

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 esercizio

Visualizza tutti i tipi di allenamento
EXERCISE_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 esercizio

Visualizza tutti i tipi di allenamento
EXERCISE_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.