Verfügbarkeit von Funktionen prüfen

Wenn Health Connect neue Funktionen erhält, aktualisieren Nutzer ihre Version von Health Connect möglicherweise nicht immer. Mit der Feature Availability API können Sie prüfen, ob eine Funktion in Health Connect auf dem Gerät des Nutzers verfügbar ist, und entscheiden, welche Aktion Sie ausführen möchten.

Erste Schritte

Die Feature Availability API hat dieselbe Abhängigkeit wie das Health Connect SDK. Prüfen Sie zuerst, ob in Ihrer build.gradle-Datei mindestens die Version 1.1.0-alpha08 enthalten ist:

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

Prüfung durchführen

Die Hauptfunktion zum Prüfen der Verfügbarkeit von Funktionen ist getFeatureStatus(). Dadurch werden die Ganzzahlkonstanten FEATURE_STATUS_AVAILABLE oder FEATURE_STATUS_UNAVAILABLE zurückgegeben:

Wenn Sie herausfinden möchten, ob das Gerät eines Nutzers die Funktion „Gesundheitsdaten im Hintergrund abrufen“ in Health Connect unterstützt, prüfen Sie die Verfügbarkeit von FEATURE_READ_HEALTH_DATA_IN_BACKGROUND auf dem Client:

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

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

Eine Liste aller verfügbaren Feature-Flags finden Sie auf der HealthConnectFeatures-Referenzseite.

Fehlende Verfügbarkeit von Funktionen verarbeiten

Wenn eine Funktion auf dem Gerät eines Nutzers nicht verfügbar ist, kann sie durch ein Update aktiviert werden. Sie können den Nutzer auffordern, Health Connect zu aktualisieren, wenn er nicht die aktuelle unterstützte Version auf seinem Gerät hat. Nutzer, die das APK unter Android 13 oder niedriger verwenden, können jedoch nicht die Funktionen des Systemmoduls nutzen, die nur auf Geräten mit Android 14 oder höher verfügbar sind.

Wenn FEATURE_EXTENDED_DEVICE_TYPES auf dem Gerät des Nutzers nicht verfügbar ist, werden diese Werte für erweiterte Gerätetypen als Device.TYPE_UNKNOWN behandelt. Stellen Sie einen sinnvollen Fallback in Ihrer Schreib- und UI-Logik bereit.