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 Health Connect jest dostępna na urządzeniu użytkownika, i podjęcie odpowiednich działań.

Rozpocznij

Interfejs Feature Availability API ma takie same zależności jak pakiet SDK Health Connect. Na początek sprawdź, czy w pliku 1.1.0-alpha08 znajduje się co najmniej wersja build.gradle:

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

Flagi funkcji

Flagi funkcji dostępne w Health Connect są wymienione w tej tabeli. Funkcja za 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
FEATURE_EXTENDED_DEVICE_TYPES Rozszerzone typy urządzeń Wymagania dotyczące metadanych
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 Plany treningowe
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND Odczytywanie danych w tle Przykład odczytu w tle
FEATURE_READ_HEALTH_DATA_HISTORY Odczytywanie danych historycznych Odczytywanie danych starszych niż 30 dni
FEATURE_SKIN_TEMPERATURE Temperatura skóry Pomiar temperatury skóry

Przeprowadź kontrolę

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

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

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 jakaś funkcja nie jest dostępna na urządzeniu użytkownika, aktualizacja może ją włączyć. Jeśli użytkownik nie ma na urządzeniu najnowszej obsługiwanej wersji Health Connect, możesz przekierować go do aktualizacji tej aplikacji. Użytkownicy korzystający z pliku APK (na Androidzie 13 i starszym) nie mogą jednak używać 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 na urządzeniu użytkownika nie jest dostępna wartość FEATURE_EXTENDED_DEVICE_TYPES, te wartości są traktowane jako Device.TYPE_UNKNOWN. W logice zapisu i interfejsu podaj rozsądną wartość domyślną.