Anforderungen an Metadaten

Dieser Leitfaden ist mit der Health Connect-Version 1.1.0-alpha12 kompatibel.

Für Entwickler, die auf Version 1.1.0-alpha12 umstellen, gibt es Änderungen an den Metadaten in Health Connect.

Bibliotheksinformationen

Die Artefakt-ID des Google Maven Android Gradle-Plug-ins gibt die Health Connect-Bibliothek an, auf die Sie aktualisieren müssen. Fügen Sie der Datei build.gradle auf Modulebene diese Abhängigkeit für das Health Connect SDK hinzu:

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

Metadatenänderungen

Ab Version 1.1.0-alpha12 wurden zwei Metadatenänderungen am Health Connect Jetpack SDK vorgenommen, damit im System zusätzliche nützliche Metadaten vorhanden sind.

Sie müssen Metadatendetails angeben, wenn ein Objekt vom Typ Record() instanziiert wird.

Sie müssen beim Schreiben von Daten in Health Connect eine der vier Aufzeichnungsmethoden angeben:

Aufnahmemethode Beschreibung
RECORDING_METHOD_UNKNOWN Die Aufnahmemethode kann nicht überprüft werden.
RECORDING_METHOD_MANUAL_ENTRY Der Nutzer hat die Daten eingegeben.
RECORDING_METHOD_AUTOMATICALLY_RECORDED Die Daten wurden von einem Gerät oder Sensor erfasst.
RECORDING_METHOD_ACTIVELY_RECORDED Der Nutzer hat den Beginn oder das Ende der Aufzeichnungssitzung auf einem Gerät gestartet.

Beispiel:

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

Sie müssen für alle automatisch und aktiv aufgezeichneten Daten einen Gerätetyp angeben. Zu den aktuellen Gerätetypen gehören:

Gerätetyp Beschreibung
TYPE_UNKNOWN Der Gerätetyp ist unbekannt.
TYPE_WATCH Der Gerätetyp ist eine Smartwatch.
TYPE_PHONE Der Gerätetyp ist ein Smartphone.
TYPE_SCALE Der Gerätetyp ist eine Waage.
TYPE_RING Der Gerätetyp ist ein Ring.
TYPE_HEAD_MOUNTED Der Gerätetyp ist ein tragbares Gerät.
TYPE_FITNESS_BAND Der Gerätetyp ist ein Fitnessarmband.
TYPE_CHEST_STRAP Der Gerätetyp ist ein Brustgurt.
TYPE_SMART_DISPLAY Der Gerätetyp ist ein Smart Display.

Beispiel:

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

Snippets aktualisiert

Die Health Connect-Anleitungen wurden an allen Stellen aktualisiert, an denen neue Snippets erforderlich sind, um die neuen Metadatenanforderungen einzuhalten. Einige Beispiele finden Sie auf der Seite Daten schreiben.

Neue Metadatenmethoden

Metadaten können nicht mehr direkt instanziiert werden. Verwenden Sie daher eine der Fabrikmethoden, um eine neue Instanz von Metadaten zu erhalten. Jede Funktion hat drei Signaturvarianten:

  • 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

Weitere Informationen finden Sie im Android Open Source Project.

Testdaten

Verwenden Sie die Testbibliothek, um erwartete Metadatenwerte zu simulieren:

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

Dadurch wird das Verhalten der Health Connect-Implementierung simuliert, bei der diese Werte beim Einfügen von Datensätzen automatisch ausgefüllt werden.

Für die Testbibliothek müssen Sie der Datei build.gradle auf Modulebene diese Abhängigkeit vom Health Connect SDK hinzufügen:

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

Bibliothek aktualisieren

Die wichtigsten Schritte sind:

  1. Aktualisieren Sie Ihre Bibliothek auf 1.1.0-alpha12.

  2. Beim Erstellen der Bibliothek werden Kompilierungsfehler ausgegeben, wenn neue Metadaten erforderlich sind. Implementieren Sie daher die erforderlichen Metadatenänderungen, wenn ein Objekt vom Typ Record() instanziiert wird. Damit sollte die Migration abgeschlossen sein.