Wymagania dotyczące metadanych

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ć:

  1. Zaktualizuj bibliotekę do wersji 1.1.0-alpha12.

  2. 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ę.