Ten przewodnik jest zgodny z wersją Health Connect 1.1.0-alpha12.
Deweloperzy, którzy zdecydują się na przejście na wersję 1.1.0-alpha12, mogą spodziewać się zmian w metadanych w Health Connect.
Informacje o bibliotece
Identyfikator artefaktu wtyczki Google Maven dla Androida Gradle wskazuje bibliotekę Health Connect, którą musisz zaktualizować.
Dodaj tę zależność pakietu SDK Health Connect do pliku build.gradle
na poziomie modułu:
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
Zmiany metadanych
W wersji 1.1.0-alpha12 pakietu Health Connect Jetpack SDK wprowadzono 2 zmiany metadanych, aby zapewnić obecność dodatkowych przydatnych metadanych w ekosystemie.
Musisz podać szczegóły metadanych za każdym razem, gdy instancjonujesz obiekt typu Record()
.
Podczas zapisywania danych w Health Connect musisz określić jedną z 4 metod rejestrowania:
Metoda nagrywania | Opis |
---|---|
RECORDING_METHOD_UNKNOWN |
Nie udało się zweryfikować metody nagrywania. |
RECORDING_METHOD_MANUAL_ENTRY |
Użytkownik wprowadził dane. |
RECORDING_METHOD_AUTOMATICALLY_RECORDED |
dane zostały zarejestrowane przez urządzenie lub czujnik; |
RECORDING_METHOD_ACTIVELY_RECORDED |
Użytkownik zainicjował rozpoczęcie lub zakończenie sesji nagrywania na urządzeniu. |
Przykład:
StepsRecord(
startTime \= Instant.ofEpochMilli(1234L),
startZoneOffset \= null,
endTime \= Instant.ofEpochMilli(1236L),
endZoneOffset \= null,
metadata \= Metadata.manualEntry(),
Count \= 10,
)
Musisz określić typ urządzenia w przypadku wszystkich automatycznie i aktywnie rejestrowanych danych. Obecne typy urządzeń:
Typ urządzenia | Opis |
---|---|
TYPE_UNKNOWN |
Typ urządzenia jest nieznany. |
TYPE_WATCH |
Typ urządzenia to zegarek. |
TYPE_PHONE |
Typ urządzenia to telefon. |
TYPE_SCALE |
Typ urządzenia to waga. |
TYPE_RING |
Typ urządzenia to pierścień. |
TYPE_HEAD_MOUNTED |
Typ urządzenia: urządzenie montowane na głowie. |
TYPE_FITNESS_BAND |
Typ urządzenia to opaska fitness. |
TYPE_CHEST_STRAP |
Typ urządzenia to pasek na klatkę piersiową. |
TYPE_SMART_DISPLAY |
Typ urządzenia to inteligentny ekran. |
Przykład:
private val TEST_DEVICE = Device(type = Device.TYPE_PHONE)
Zaktualizowano fragmenty
W poradnikach Health Connect zostały zaktualizowane fragmenty kodu, w których przypadku wymagane są nowe fragmenty kodu, aby spełnić nowe wymagania dotyczące metadanych. Przykłady znajdziesz na stronie Zapisywanie danych.
Nowe metody metadanych
Metadanych nie można już bezpośrednio instancjonować, dlatego użyj jednej z metod fabrycznych, aby uzyskać nowy przykład metadanych. Każda funkcja ma 3 warianty sygnatury:
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
Więcej informacji znajdziesz w projekcie Android Open Source.
Dane testowe
Użyj Testing Library, aby zasymulować oczekiwane wartości metadanych:
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
Symuluje to działanie implementacji Health Connect, która automatycznie wypełnia te wartości podczas wstawiania rekordu.
W przypadku biblioteki testowej musisz dodać tę zależność pakietu SDK Health Connect do pliku build.gradle
na poziomie modułu:
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
Uaktualnij bibliotekę
Oto główne kroki, które musisz wykonać:
Zaktualizuj bibliotekę do wersji 1.1.0-alpha12.
Podczas kompilowania biblioteki w miejscach, w których potrzebne są nowe metadane, będą pojawiać się błędy kompilacji. Dlatego pamiętaj, aby wprowadzić niezbędne zmiany metadanych za każdym razem, gdy instancjonujesz obiekt typu
Record()
. To powinno zakończyć migrację.