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:
Aktualisieren Sie Ihre Bibliothek auf 1.1.0-alpha12.
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.