Проверьте доступность функции

При добавлении новых функций в 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")
}

Флаги функций

Флаги функций, доступные для Health Connect, перечислены в таблице ниже. Функциональность, связанная с флагом функции, не будет доступна, если устройство пользователя не поддерживает эту функцию.

Таблица: Флаги доступности функций Health Connect
Флаг функции Тип данных Похожие руководства
FEATURE_ACTIVITY_INTENSITY Интенсивность активности
FEATURE_EXTENDED_DEVICE_TYPES Расширенные типы устройств Требования к метаданным
FEATURE_PERSONAL_HEALTH_RECORD Медицинские записи Формат данных медицинских карт
Запись медицинских данных
Чтение медицинских данных
FEATURE_MINDFULNESS_SESSION Осознанность Отслеживание осознанности
FEATURE_PLANNED_EXERCISE Плановые учения Планы обучения
FEATURE_READ_HEALTH_DATA_IN_BACKGROUND Чтение данных в фоновом режиме Пример фонового чтения
FEATURE_READ_HEALTH_DATA_HISTORY Прочитать исторические данные Чтение данных старше 30 дней
FEATURE_SKIN_TEMPERATURE Температура кожи Измерьте температуру кожи

Выполнить проверку

Основная функция для проверки доступности функции — getFeatureStatus() . Она возвращает целочисленные константы FEATURE_STATUS_AVAILABLE или FEATURE_STATUS_UNAVAILABLE :

Чтобы определить, поддерживает ли устройство пользователя функцию чтения данных о состоянии здоровья в фоновом режиме в Health Connect, проверьте наличие 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 .

Устранить нехватку доступных функций

Если функция недоступна на устройстве пользователя, обновление может её включить. Вы можете порекомендовать пользователю обновить Health Connect, если на его устройстве не установлена ​​последняя поддерживаемая версия. Однако пользователи, использующие APK (на Android 13 и ниже), не смогут использовать функции системного модуля, доступные только на устройствах с Android 14 и выше.

Для расширенных типов устройств, если FEATURE_EXTENDED_DEVICE_TYPES недоступен на устройстве пользователя, эти значения обрабатываются как Device.TYPE_UNKNOWN . Предусмотрите разумный запасной вариант в логике написания и пользовательского интерфейса.