Questa guida è compatibile con la versione 1.1.0-alpha12 e successive di Connessione Salute.
Sono state apportate modifiche ai metadati in Connessione Salute per gli sviluppatori che eseguono l'upgrade alla versione 1.1.0-alpha12 o successive.
Informazioni sulla biblioteca
L'ID artefatto del plug-in Android per Gradle di Google Maven
identifica la libreria Connessione Salute a cui dovrai eseguire l'upgrade.
Aggiungi questa dipendenza dell'SDK Health Connect al file
build.gradle
a livello di modulo:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
Modifiche ai metadati
A partire dalla versione 1.1.0-alpha12, sono state introdotte due modifiche ai metadati dell'SDK Health Connect Jetpack per contribuire a verificare che nell'ecosistema esistano metadati utili aggiuntivi.
Specificare il metodo di registrazione
Devi specificare i dettagli dei metadati ogni volta che viene istanziato un oggetto di tipo Record()
.
Quando scrivi dati in Connessione Salute, devi specificare uno dei quattro metodi di registrazione utilizzando uno dei metodi di fabbrica corrispondenti per creare un'istanza di Metadata
:
Metodo di registrazione | Descrizione |
---|---|
RECORDING_METHOD_UNKNOWN |
Il metodo di registrazione non può essere verificato. |
RECORDING_METHOD_MANUAL_ENTRY |
L'utente ha inserito i dati. |
RECORDING_METHOD_AUTOMATICALLY_RECORDED |
I dati sono stati registrati da un dispositivo o un sensore. |
RECORDING_METHOD_ACTIVELY_RECORDED |
L'utente ha avviato o terminato la sessione di registrazione su un dispositivo. |
Ad esempio:
StepsRecord(
startTime = Instant.ofEpochMilli(1234L),
startZoneOffset = null,
endTime = Instant.ofEpochMilli(1236L),
endZoneOffset = null,
metadata = Metadata.manualEntry(),
Count = 10,
)
Tipo di dispositivo
Devi specificare un tipo di dispositivo per tutti i dati registrati automaticamente e attivamente. Anche se è possibile specificare manufacturer
e model
, questi sono facoltativi. Per ulteriori dettagli, consulta la
classe Device
nella documentazione di Jetpack. I tipi di dispositivo
attualmente disponibili includono:
Tipo di dispositivo | Descrizione |
---|---|
TYPE_UNKNOWN |
Il tipo di dispositivo è sconosciuto. |
TYPE_WATCH |
Il tipo di dispositivo è uno smartwatch. |
TYPE_PHONE |
Il tipo di dispositivo è uno smartphone. |
TYPE_SCALE |
Il tipo di dispositivo è una bilancia. |
TYPE_RING |
Il tipo di dispositivo è un anello. |
TYPE_HEAD_MOUNTED |
Il tipo di dispositivo è un dispositivo montato sulla testa. |
TYPE_FITNESS_BAND |
Il tipo di dispositivo è un fitness tracker. |
TYPE_CHEST_STRAP |
Il tipo di dispositivo è una fascia toracica. |
TYPE_SMART_DISPLAY |
Il tipo di dispositivo è uno smart display. |
Alcuni valori di Device.type
sono disponibili solo nelle versioni successive di Health
Connect. Quando la funzionalità dei tipi di dispositivi estesi non è disponibile, questi tipi
vengono trattati come Device.TYPE_UNKNOWN
.
Tipi di dispositivi estesi | Descrizione |
---|---|
TYPE_CONSUMER_MEDICAL_DEVICE |
Il tipo di dispositivo è dispositivo medico. |
TYPE_GLASSES |
Il tipo di dispositivo è un paio di occhiali o occhiali smart. |
TYPE_HEARABLE |
Il tipo di dispositivo è un dispositivo acustico. |
TYPE_FITNESS_MACHINE |
Il tipo di dispositivo è una macchina stazionaria. |
TYPE_FITNESS_EQUIPMENT |
Il tipo di dispositivo è un attrezzo per il fitness. |
TYPE_PORTABLE_COMPUTER |
Il tipo di dispositivo è un computer portatile. |
TYPE_METER |
Il tipo di dispositivo è un misuratore. |
FEATURE_EXTENDED_DEVICE_TYPES
sul client:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_EXTENDED_DEVICE_TYPES
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
Se possibile, fornisci il produttore e il modello del dispositivo, oltre al tipo di dispositivo. Ad esempio:
private val TEST_DEVICE = Device(
manufacturer = "Google",
model = "Pixel Watch",
type = Device.TYPE_WATCH
)
Snippet aggiornati
Le guide di Connessione Salute sono state aggiornate ovunque siano necessari nuovi snippet per rispettare i nuovi requisiti dei metadati. Per alcuni esempi, consulta la pagina Scrittura dei dati.
Nuovi metodi per i metadati
I metadati non possono più essere istanziati direttamente, quindi utilizza uno dei metodi di fabbrica per ottenere una nuova istanza di metadati. I metodi di fabbrica verificano che le informazioni sul dispositivo vengano fornite quando un dispositivo o un sensore è stato utilizzato per registrare i dati. Per i dati inseriti manualmente, fornire le informazioni sul dispositivo rimane facoltativo. Ogni funzione ha tre varianti di firma:
activelyRecorded
fun activelyRecorded(device: Device): Metadata.
fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
fun activelyRecordedWithId(id: String, device: Device): Metadata
autoRecorded
fun autoRecorded(device: Device): Metadata
fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
fun autoRecordedWithId(id: String, device: Device): Metadata
manualEntry
fun manualEntry(device: Device? = null): Metadata
fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
fun manualEntryWithId(id: String, device: Device? = null): Metadata
unknownRecordingMethod
fun unknownRecordingMethod(device: Device? = null): Metadata
fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata
Per ulteriori informazioni, consulta l'Android Open Source Project.
Dati di test
Utilizza la libreria di test e
MetadataTestHelper
per simulare i valori dei metadati previsti:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
In questo modo viene simulato il comportamento dell'implementazione di Health Connect, che compila automaticamente questi valori durante l'inserimento dei record.
Per la libreria di test, devi aggiungere questa dipendenza dell'SDK Health Connect al file build.gradle
a livello di modulo:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
Esegui l'upgrade della libreria
I passaggi principali da eseguire sono:
Esegui l'upgrade della libreria alla versione 1.1.0-alpha12.
Durante la creazione della libreria, verranno generati errori di compilazione nei punti in cui sono necessari nuovi metadati. Per risolvere questi errori e completare la migrazione, verifica di apportare le seguenti modifiche:
- È obbligatorio specificare un metodo di registrazione durante la creazione di un
Record
. A tal fine, utilizza uno dei metodi di fabbrica forniti inMetadata
, ad esempioMetadata.manualEntry()
oMetadata.activelyRecorded(device = Device(...))
. - Per i dati registrati da un dispositivo, è obbligatorio specificare un tipo di dispositivo,
ad esempio
Device.TYPE_WATCH
oDevice.TYPE_PHONE
.
- È obbligatorio specificare un metodo di registrazione durante la creazione di un
Se la tua app scrive tipi di dispositivi estesi, proteggili con
FEATURE_EXTENTED_DEVICE_TYPES
per evitareTYPE_UNKNOWN
imprevisti sui dispositivi in cui la funzionalità non è disponibile.