Vérifier la disponibilité des fonctionnalités

Lorsque de nouvelles fonctionnalités sont ajoutées à Santé Connect, les utilisateurs ne mettent pas toujours à jour leur version de Santé Connect. L'API Feature Availability permet de vérifier si une fonctionnalité de Santé Connect est disponible sur l'appareil de votre utilisateur et de décider quelle action entreprendre.

Premiers pas

L'API Feature Availability partage la même dépendance que le SDK Santé Connect. Pour commencer, vérifiez qu'au moins la version 1.1.0-alpha08 se trouve dans votre fichier build.gradle :

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

Effectuer la vérification

La fonction principale permettant de vérifier la disponibilité d'une fonctionnalité est getFeatureStatus(). Cela renvoie les constantes entières FEATURE_STATUS_AVAILABLE ou FEATURE_STATUS_UNAVAILABLE :

Pour déterminer si l'appareil d'un utilisateur est compatible avec la lecture des données de santé en arrière-plan dans Santé Connect, vérifiez la disponibilité de FEATURE_READ_HEALTH_DATA_IN_BACKGROUND sur le client :

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

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

Pour obtenir la liste de tous les indicateurs de fonctionnalité disponibles, consultez la page de référence HealthConnectFeatures.

Gérer l'indisponibilité des fonctionnalités

Si une fonctionnalité n'est pas disponible sur l'appareil d'un utilisateur, une mise à jour peut l'activer. Vous pouvez envisager d'inviter l'utilisateur à mettre à jour Santé Connect s'il ne dispose pas de la dernière version compatible sur son appareil. Toutefois, les utilisateurs qui utilisent l'APK (sur Android 13 et versions antérieures) ne peuvent pas utiliser les fonctionnalités du module système qui ne sont disponibles que sur les appareils exécutant Android 14 ou version ultérieure.

Pour les types d'appareils étendus, si FEATURE_EXTENDED_DEVICE_TYPES n'est pas disponible sur l'appareil de l'utilisateur, ces valeurs sont traitées comme Device.TYPE_UNKNOWN. Fournissez une solution de repli pertinente dans votre logique d'écriture et d'UI.