Requisiti dei metadati

Questa guida è compatibile con la versione 1.1.0-alpha12 di Connessione Salute.

Sono state apportate modifiche ai metadati in Connessione Salute per gli sviluppatori che scelgono di eseguire l'upgrade alla release 1.1.0-alpha12.

Informazioni sulla libreria

L'ID elemento del plug-in Android Gradle di Google Maven identifica la libreria Connessione Salute a cui dovrai eseguire l'upgrade. Aggiungi questa dipendenza dall'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

Nell'SDK Jetpack di Connessione Salute sono state introdotte due modifiche ai metadati a partire dalla versione 1.1.0-alpha12 per garantire che nell'ecosistema esistano metadati utili aggiuntivi.

Devi specificare i dettagli dei metadati ogni volta che viene creato un oggetto di tipo Record().

Quando scrivi i dati in Connessione Salute, devi specificare uno dei quattro metodi di registrazione:

Metodo di registrazione Descrizione
RECORDING_METHOD_UNKNOWN Non è possibile verificare il metodo di registrazione.
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 l'inizio o la fine della 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,
)

Devi specificare un tipo di dispositivo per tutti i dati registrati automaticamente e attivamente. I tipi di dispositivi attuali 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 indossabile.
TYPE_FITNESS_BAND Il tipo di dispositivo è una fascia per il fitness.
TYPE_CHEST_STRAP Il tipo di dispositivo è una fascia toracica.
TYPE_SMART_DISPLAY Il tipo di dispositivo è uno smart display.

Ad esempio:

private val TEST_DEVICE = Device(type = Device.TYPE_PHONE)

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 Scrivere dati.

Nuovi metodi per i metadati

I metadati non possono più essere direttamente istanziati, quindi utilizza uno dei metodi di fabbrica per ottenere una nuova istanza di metadati. 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 il progetto Android Open Source.

Dati di test

Utilizza la Testing Library 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")

Questo simula 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 dall'SDK Health Connect al build.gradle file 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:

  1. Esegui l'upgrade della libreria alla versione 1.1.0-alpha12.

  2. Durante la compilazione della libreria, verranno generati errori di compilazione se sono necessari nuovi metadati, quindi assicurati di implementare le modifiche necessarie ai metadati ogni volta che viene creato un oggetto di tipo Record(). La migrazione dovrebbe essere completata.