Sprawdzanie dostępności funkcji

Gdy do Health Connect dodawane są nowe funkcje, użytkownicy nie zawsze aktualizują swoją wersję Health Connect. Interfejs Feature Availability API umożliwia sprawdzenie, czy funkcja w Health Connect jest dostępna na urządzeniu użytkownika, i podjęcie odpowiednich działań.

Rozpocznij

Interfejs Feature Availability API ma tę samą zależność co pakiet Health Connect SDK. Aby rozpocząć, sprawdź, czy w pliku build.gradle masz co najmniej wersję 1.1.0-alpha08:

dependencies {
  implementation("androidx.health.connect:connect-client:1.1.0-alpha08")
}

Flagi funkcji

Flagi funkcji dostępne w Health Connect są wymienione w tabeli poniżej. Funkcjonalność powiązana z flagą funkcji nie będzie dostępna, jeśli urządzenie użytkownika jej nie obsługuje.

Tabela: flagi dostępności funkcji Health Connect
Flaga funkcji Typ danych Powiązane przewodniki
FEATURE_ACTIVITY_INTENSITY Intensywność aktywności Treningi
FEATURE_EXTENDED_DEVICE_TYPES Rozszerzone typy urządzeń Wymagania dotyczące metadanych
FEATURE_MATCHMAKING Dobór partnera lub partnerki
FEATURE_PERSONAL_HEALTH_RECORD Dokumentacja medyczna Format danych dokumentacji medycznej
Zapisywanie danych medycznych
Odczytywanie danych medycznych
FEATURE_MINDFULNESS_SESSION Uważność Śledzenie uważności
FEATURE_PLANNED_EXERCISE Zaplanowane ćwiczenie Treningi
Plany treningowe
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND Odczytywanie danych w tle Przykład odczytywania w tle
FEATURE_READ_HEALTH_DATA_HISTORY Odczytywanie danych historycznych Odczytywanie danych starszych niż 30 dni
FEATURE_SKIN_TEMPERATURE Temperatura skóry Parametry życiowe
Pomiar temperatury skóry

Przeprowadź kontrolę

Główną funkcją sprawdzania dostępności funkcji jest getFeatureStatus(). Zwraca ona stałe całkowite FEATURE_STATUS_AVAILABLE lub FEATURE_STATUS_UNAVAILABLE:

Aby sprawdzić, czy urządzenie użytkownika obsługuje odczytywanie danych dotyczących zdrowia w tle w Health Connect, sprawdź dostępność FEATURE_READ_HEALTH_DATA_IN_BACKGROUND na kliencie:

if (healthConnectClient
     .features
     .getFeatureStatus(
       HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
     ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

  // Feature is available
} else {
  // Feature isn't available
}

Listę wszystkich dostępnych flag funkcji znajdziesz na stronie referencyjnej HealthConnectFeatures.

Obsługa braku dostępności funkcji

Jeśli funkcja nie jest dostępna na urządzeniu użytkownika, może ją włączyć aktualizacja. Możesz poprosić użytkownika o zaktualizowanie Health Connect, jeśli nie ma on na urządzeniu najnowszej obsługiwanej wersji. Użytkownicy korzystający z pliku APK (na Androidzie 13 i starszych wersjach) nie mogą jednak korzystać z funkcji modułu systemowego, które są dostępne tylko na urządzeniach z Androidem 14 lub nowszym.

W przypadku rozszerzonych typów urządzeń, jeśli FEATURE_EXTENDED_DEVICE_TYPES nie jest dostępna na urządzeniu użytkownika, te wartości są traktowane jako Device.TYPE_UNKNOWN. W logice zapisu i interfejsu użytkownika zastosuj odpowiednie rozwiązanie zastępcze.