При добавлении новых функций в Health Connect пользователи не всегда могут обновлять свою версию Health Connect. API проверки доступности функций позволяет проверить, доступна ли та или иная функция в Health Connect на устройстве пользователя, и определить, какие действия следует предпринять.
Начать
API для проверки доступности функций использует ту же зависимость, что и SDK Health Connect. Для начала убедитесь, что в вашем файле build.gradle указана как минимум версия 1.1.0-alpha08 :
dependencies {
implementation("androidx.health.connect:connect-client:1.1.0-alpha08")
}
Флаги функций
Доступные для 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 :
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 . Предусмотрите разумный резервный вариант в логике записи и пользовательского интерфейса.