Інтеграція Health Connect в Android: єдиний API здоров'я

Інтеграція 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: єдиний API здоров'я

Чому 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 сьогодні і позбавте команду головного болю з фрагментацією даних.