Когда в платформу "Здоровье и спорт" добавляются новые функции, пользователи не всегда обновляют ее версию. Feature Availability API позволяет проверить, доступна ли функция платформы "Здоровье и спорт" на устройстве пользователя, и решить, что делать дальше.
Начать
API доступности функций имеет ту же зависимость, что и SDK Здоровья и спорта. Для начала убедитесь, что в файле build.gradle указана версия не ниже 1.1.0-alpha08:
dependencies {
implementation("androidx.health.connect:connect-client:1.2.0-alpha06")
}
Флаги функций
Флаги функций, доступные для платформы "Здоровье и спорт", перечислены в таблице ниже. Функция, для которой установлен флаг, не будет доступна, если устройство пользователя ее не поддерживает.
| Флаг функции | Тип данных | Похожие руководства |
|---|---|---|
FEATURE_ACTIVITY_INTENSITY |
Интенсивность занятий |
Тренировки |
FEATURE_EXTENDED_DEVICE_TYPES |
Расширенные типы устройств |
Требования к метаданным |
FEATURE_MATCHMAKING |
Подбор соперников | |
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.
Как обрабатывать отсутствие функций
Если функция недоступна на устройстве пользователя, возможно, она появится после обновления. Если на устройстве пользователя установлена неподдерживаемая версия платформы "Здоровье и спорт", вы можете предложить ему обновить ее. Однако пользователи APK-файла (на устройствах с Android 13 и более ранними версиями) не смогут использовать функции системного модуля, доступные только на устройствах с Android 14 и более поздними версиями.
Если на устройстве пользователя недоступен параметр FEATURE_EXTENDED_DEVICE_TYPES, то для расширенных типов устройств эти значения обрабатываются как Device.TYPE_UNKNOWN. Предусмотрите разумный резервный вариант в логике записи и интерфейса.