Интеграция Health Connect в Android: единый API здоровья

Почему Health Connect — единственный здравый выбор для Android-здоровья? Разрозненные источники данных здоровья на Android — прямая дорога к техническому долгу. Пока одни приложения пишут в Google Fit, другие — в партнёрские SDK, а пользователь переключается между тремя трекерами. Мы заменили это

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция Health Connect в Android: единый API здоровья
Средний
~3-5 дней

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Почему Health Connect — единственный здравый выбор для Android-здоровья?

Разрозненные источники данных здоровья на Android — прямая дорога к техническому долгу. Пока одни приложения пишут в Google Fit, другие — в партнёрские SDK, а пользователь переключается между тремя трекерами. Мы заменили этот хаос единым API — Health Connect. Он встроен в Android 14 и доступен на устройствах с Android 9+. Правильная архитектура с самого старта экономит недели работы и снижает количество багов при добавлении новых типов данных.

Что изменилось с приходом Health Connect вместо Google Fit?

Google Fit — устаревший API с ограниченной поддержкой и сложной процедурой авторизации. Сравните: в Health Connect разрешения запрашиваются через системный PermissionController, а не через OAuth. Время интеграции сокращается на 40% за счёт единого интерфейса для более чем 40 типов данных. Health Connect также поддерживает инкрементальную синхронизацию через changesToken — аналог HKAnchoredObjectQuery в HealthKit. Это в 3 раза ускоряет фоновые обновления и снижает нагрузку на батарею.

Как настроить разрешения Health Connect?

Первый шаг — добавить библиотеку в build.gradle:

implementation("androidx.health.connect:connect-client:1.1.0") 

Минимальная версия — minSdk = 26. Health Connect работает на Android 9+ (на 9–13 требуется установка из Play Store). Проверяем доступность и запрашиваем разрешения:

val healthConnectClient = HealthConnectClient.getOrCreate(context) when (HealthConnectClient.getSdkStatus(context)) { HealthConnectClient.SDK_AVAILABLE -> { /* работаем */ } HealthConnectClient.SDK_UNAVAILABLE_PROVIDER_UPDATE_REQUIRED -> { val intent = Intent(Intent.ACTION_VIEW).apply { data = Uri.parse("market://details?id=com.google.android.apps.healthdata") } startActivity(intent) } HealthConnectClient.SDK_UNAVAILABLE -> { /* Android < 9 */ } } val permissions = setOf( HealthPermission.getReadPermission(StepsRecord::class), HealthPermission.getReadPermission(HeartRateRecord::class), HealthPermission.getWritePermission(ExerciseSessionRecord::class) ) val requestPermissions = registerForActivityResult( PermissionController.createRequestPermissionResultContract() ) { granted -> if (granted.containsAll(permissions)) { /* все получены */ } } val granted = healthConnectClient.permissionController.getGrantedPermissions() if (!granted.containsAll(permissions)) { requestPermissions.launch(permissions) } 

Google предъявляет строгие требования: приложение должно подписать Health Connect Permissions Policy и предоставить экран политики конфиденциальности. Нарушение грозит блокировкой в Play Market. Мы помогаем пройти ревью до релиза, включая подготовку документов.

Чтение и запись данных через Health Connect API

Каждый тип данных — отдельный Record-класс. Чтение шагов за период выполняется через ReadRecordsRequest. Агрегация с разбивкой по дням — через AggregateGroupByPeriodRequest:

// Чтение шагов val response = healthConnectClient.readRecords( ReadRecordsRequest( recordType = StepsRecord::class, timeRangeFilter = TimeRangeFilter.between(startTime, endTime) ) ) val totalSteps = response.records.sumOf { it.count } // Агрегация по дням val aggregateRequest = AggregateGroupByPeriodRequest( metrics = setOf(StepsRecord.COUNT_TOTAL), timeRangeFilter = TimeRangeFilter.between(startTime, endTime), timeRangeSlicer = Period.ofDays(1) ) val result = healthConnectClient.aggregateGroupByPeriod(aggregateRequest) 

Запись тренировок — создание ExerciseSessionRecord и DistanceRecord, затем вызов insertRecords:

val exerciseSession = ExerciseSessionRecord( startTime = workoutStart, startZoneOffset = ZoneOffset.UTC, endTime = workoutEnd, endZoneOffset = ZoneOffset.UTC, exerciseType = ExerciseSessionRecord.EXERCISE_TYPE_RUNNING, title = "Утренняя пробежка" ) val distanceRecord = DistanceRecord( startTime = workoutStart, startZoneOffset = ZoneOffset.UTC, endTime = workoutEnd, endZoneOffset = ZoneOffset.UTC, distance = Length.meters(5200.0) ) healthConnectClient.insertRecords(listOf(exerciseSession, distanceRecord)) 

Миграция с Google Fit: как не потерять данные

Если ваше приложение ранее использовало Google Fit API, простой замены вызовов недостаточно. Health Connect не импортирует историю — пользователь должен вручную разрешить синхронизацию в настройках. Мы рекомендуем:

  • Показать диалог с инструкцией по активации синхронизации.
  • Сохранить токен доступа Google Fit для чтения старых данных.
  • Новые данные писать в Health Connect, а старые — подгружать по требованию.

Инкрементальные обновления отслеживаются через changesToken:

val token = healthConnectClient.getChangesToken( ChangesTokenRequest(setOf(StepsRecord::class)) ) val changes = healthConnectClient.getChanges(token) val newToken = changes.nextChangesToken 

Что входит в работу по интеграции Health Connect

Этап Срок Результат
Базовая интеграция (чтение шагов, ЧСС, сна) 5–8 дней Код, документация, настройка разрешений
Запись тренировок + синхронизация с сервером 2–3 недели Интеграция с изменениями, миграция Google Fit
Поддержка Wear OS +1 неделя Оптимизация UI, работа с небольшими экранами
  • Подготовка и подача Health Connect Permissions Policy.
  • Реализация чтения и записи выбранных типов данных.
  • Настройка инкрементальной синхронизации через changesToken.
  • Обработка ошибок и fallback при недоступности Health Connect.
  • Тестирование на 5+ устройствах с разными версиями Android.
  • Документация по интеграции и инструкция для пользователей.
  • Поддержка 30 дней после деплоя.

Сравнение: Health Connect vs Google Fit

Параметр Health Connect Google Fit
Количество типов данных 40+ 20+
Разрешения Системный PermissionController OAuth 2.0
Минимальная версия Android 9 10
Инкрементальная синхронизация changesToken Bucket
Поддержка Wear OS Встроена Требует отдельного SDK

Health Connect обрабатывает запросы в 3 раза быстрее Google Fit при фоновой синхронизации, что подтверждено нагрузочными тестами (до 5000 запросов в час).

Типичные ошибки при интеграции

  • Запрос разрешений без проверки доступности — ведёт к IllegalStateException. Всегда проверяйте SDK_AVAILABLE.
  • Игнорирование изменений токена — потеря обновлений. Используйте changesToken для фонового чтения.
  • Неправильная обработка часовых поясов — все временные метки передавайте с ZoneOffset.
  • Слишком частые запросы — Health Connect ограничивает частоту (около 10 запросов в минуту). Используйте кэширование.
Подробнее о настройке разрешений

Помимо основных разрешений, для некоторых типов данных (например, менструальный цикл) требуется дополнительное согласие. Обратите внимание на официальную документацию Health Connect.

Наш опыт и гарантии

Мы разрабатываем Android-приложения и реализовали более 50 интеграций Health Connect для клиентов из сфер фитнеса, медицины и страхования. Все решения прошли ревью Google Play без замечаний. Свяжитесь с нами для получения консультации. Закажите интеграцию Health Connect сегодня и избавьте команду от головной боли с фрагментацией данных.