Exigences concernant les métadonnées

Ce guide est compatible avec la version 1.1.0-alpha12 de Santé Connect.

Des modifications ont été apportées aux métadonnées de Santé Connect pour les développeurs qui choisissent de passer à la version 1.1.0-alpha12.

Informations sur la bibliothèque

L'ID d'artefact du plug-in Gradle Google Maven Android identifie la bibliothèque Santé Connect que vous devrez mettre à niveau. Ajoutez cette dépendance du SDK Santé Connect au fichier build.gradle au niveau de votre module :

dependencies {
  implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}

Modifications des métadonnées

Deux modifications de métadonnées ont été apportées au SDK Jetpack Santé Connect à partir de la version 1.1.0-alpha12 pour s'assurer que des métadonnées utiles supplémentaires existent dans l'écosystème.

Vous devez spécifier les détails des métadonnées chaque fois qu'un objet de type Record() est instancié.

Vous devez spécifier l'une des quatre méthodes d'enregistrement lorsque vous écrivez des données dans Santé Connect :

Méthode d'enregistrement Description
RECORDING_METHOD_UNKNOWN La méthode d'enregistrement n'a pas pu être validée.
RECORDING_METHOD_MANUAL_ENTRY L'utilisateur a saisi les données.
RECORDING_METHOD_AUTOMATICALLY_RECORDED Un appareil ou un capteur a enregistré les données.
RECORDING_METHOD_ACTIVELY_RECORDED L'utilisateur a lancé ou arrêté la session d'enregistrement sur un appareil.

Exemple :

StepsRecord(
    startTime \= Instant.ofEpochMilli(1234L),
    startZoneOffset \= null,
    endTime \= Instant.ofEpochMilli(1236L),
    endZoneOffset \= null,
    metadata \= Metadata.manualEntry(),
    Count \= 10,
)

Vous devez spécifier un type d'appareil pour toutes les données enregistrées automatiquement et activement. Voici les types d'appareils actuels :

Type d'appareil Description
TYPE_UNKNOWN Le type d'appareil est inconnu.
TYPE_WATCH Le type d'appareil est une montre.
TYPE_PHONE Le type d'appareil est un téléphone.
TYPE_SCALE Le type d'appareil est une balance.
TYPE_RING Le type d'appareil est une sonnette.
TYPE_HEAD_MOUNTED Le type d'appareil est un appareil porté sur la tête.
TYPE_FITNESS_BAND Le type d'appareil est un bracelet d'activité.
TYPE_CHEST_STRAP Le type d'appareil est une ceinture cardiofréquencemètre.
TYPE_SMART_DISPLAY Le type d'appareil est un écran connecté.

Si possible, indiquez le fabricant et le modèle de l'appareil en plus de son type. Exemple :

private val TEST_DEVICE = Device(
    manufacturer = "Google",
    model = "Pixel Watch",
    type = Device.TYPE_WATCH
)

Extraits mis à jour

Les guides Santé Connect ont été mis à jour chaque fois que de nouveaux extraits étaient nécessaires pour respecter les nouvelles exigences concernant les métadonnées. Pour obtenir des exemples, consultez la page Écrire des données.

Nouvelles méthodes de métadonnées

Les métadonnées ne peuvent plus être instanciées directement. Utilisez donc l'une des méthodes de fabrique pour obtenir une nouvelle instance de métadonnées. Chaque fonction comporte trois variantes de signature :

  • 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

Pour en savoir plus, consultez le projet Android Open Source.

Données de test

Utilisez la bibliothèque de test pour simuler les valeurs de métadonnées attendues :

private val TEST_METADATA =
    Metadata.unknownRecordingMethod(
        clientRecordId = "clientId",
        clientRecordVersion = 1L,
        device = Device(type = Device.TYPE_UNKNOWN),
    ).populatedWithTestValues(id = "test")

Cela simule le comportement de l'implémentation Santé Connect, qui renseigne automatiquement ces valeurs lors de l'insertion d'un enregistrement.

Pour la bibliothèque de test, vous devez ajouter cette dépendance du SDK Santé Connect à votre fichier build.gradle au niveau du module :

dependencies {
  testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}

Mettre à niveau la bibliothèque

Voici les principales étapes à suivre :

  1. Mettez à niveau votre bibliothèque vers la version 1.1.0-alpha12.

  2. Lors de la création de la bibliothèque, des erreurs de compilation seront générées lorsqu'il faudra ajouter de nouvelles métadonnées. Veillez donc à implémenter les modifications de métadonnées nécessaires chaque fois qu'un objet de type Record() est instancié. La migration devrait alors être terminée.