При добавлении новых функций в Health Connect пользователи не всегда могут обновить свою версию Health Connect. API доступности функций — это способ проверить, доступна ли функция Health Connect на устройстве пользователя, и решить, какие действия следует предпринять.
Начать
API доступности функций имеет ту же зависимость, что и Health Connect SDK. Для начала убедитесь, что в вашем файле build.gradle
установлена версия не ниже 1.1.0-alpha08
:
dependencies {
implementation("androidx.health.connect:connect-client:1.1.0-alpha08")
}
Выполнить проверку
Основная функция для проверки доступности функции — getFeatureStatus()
. Она возвращает целочисленные константы FEATURE_STATUS_AVAILABLE
или FEATURE_STATUS_UNAVAILABLE
:
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
на клиенте:if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_READ_HEALTH_DATA_IN_BACKGROUND
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
Список всех доступных флагов функций см. на справочной странице HealthConnectFeatures
.
Handle lack of feature availability
Если функция недоступна на устройстве пользователя, обновление может её включить. Вы можете порекомендовать пользователю обновить Health Connect, если на его устройстве не установлена последняя поддерживаемая версия. Однако пользователи, использующие APK (на Android 13 и ниже), не смогут использовать функции системного модуля, доступные только на устройствах с Android 14 и выше.
Для расширенных типов устройств, если FEATURE_EXTENDED_DEVICE_TYPES
недоступен на устройстве пользователя, эти значения обрабатываются как Device.TYPE_UNKNOWN
. Предусмотрите разумный запасной вариант в логике написания и пользовательского интерфейса.