Ако използвате няколко приложения за упражнения, сън, хранене или здраве на вашия телефон с Android, много е вероятно да имате свое собствено. данни, разпръснати навсякъде и управлението им се превръща в досадно. Health Connect е тук точно за това: да въведе ред, да централизира информацията и да ви предостави ясни контроли за поверителност, без да се налага да прескачате от едно приложение на друго.
Освен това, за разработчиците и здравните компании, Health Connect се превърна в единна точка за интеграция на здравни данни което опростява синхронизацията, подобрява оперативната съвместимост и отваря вратата към по-богати потребителски изживявания, като същевременно запазва контрола и сигурността в основата си.
Какво е Health Connect и какъв проблем решава?
Health Connect от Android е система, която функционира като централен център за данни за здравето и физическата активностВместо всяко приложение да съхранява и управлява собствената си информация поотделно, Health Connect действа като общо хранилище на устройството, в което различни приложения могат да четат и записват данни с ваше разрешение.
Идеята е да се сложи край на класическата ситуация, в която записи на стъпки, сърдечен ритъм, сън, хранене или менструален цикъл Те са разпръснати в приложения, устройства и услуги. С Health Connect цялата тази информация се съхранява локално на вашия телефон и вие решавате какво да се споделя, с кого и с каква цел.
От гледна точка на Google, тази система позволява Споделяйте данни между приложения, без да жертвате поверителносттаЗа потребителя това се изразява в по-голямо удобство и по-добра обща представа за здравето му; за разработчиците това означава унифициран API за работа със здравни данни, без да се налага да преоткриват колелото с всяка интеграция.
Достъпът до Health Connect зависи от версията на Android
Начинът за достъп до Health Connect зависи от Версията на Android, която устройството има, тъй като от Android 14 нататък става част от самата система.
Health Connect на Android 14 и по-нови версии
От Android 14 (ниво на API 34), Health Connect е... модул, интегриран в Android framework-аТова вече не е просто самостоятелно приложение. Това означава, че не е нужно да изтегляте нищо от Google Play, за да работи, и се управлява директно от системните настройки.
За да го отворите на Android 14 или по-нова версия, отидете в приложението на Настройки на устройството и отидете до настройките за сигурност и поверителност. Обичайният път е: Настройки > Сигурност и поверителност > Контроли за поверителност > Health Connect (или Health Connected, в зависимост от превода и производителя). Можете също така потърсете „Health Connect“ в лентата за търсене с настройки за да стигнем до там по-бързо.
В тази версия, когато актуализирате телефона си, системата Той автоматично мигрира данните, които сте имали в предишната версия на приложението. От Health Connect (ако сте го използвали преди) до интегрирания системен модул, включително всички вече предоставени разрешения. По този начин можете дори да деинсталирате старото приложение, без да губите услуга.
Health Connect на Android 13 и по-стари версии
В Android 13 (API 33) и по-ранни версии, Health Connect не е включен в системата, така че е необходимо да се инсталира отделно. Инсталирайте приложението от Google Play Store за да може да го използва.
След като приложението е инсталирано, можете да го отворите от Настройки > Приложения > Health Connect или като го добавите към менюто на бързи настройки за по-директен достъп. На тези устройства разработчиците, които вече са интегрирали приложението си с Health Connect, могат мигрирайте без да нарушавате преживяването когато потребителят надстрои до Android 14 и по-нова версия, благодарение на специфичните ръководства за миграция.
Важно е да се обърне внимание Health Connect не поддържа многопотребителски профили Нито пък работи със служебни профили на Android. Работи само с основния профил на потребителя, именно за да поддържа ясен контрол върху собственика на данните.
Централизирайте и свържете приложенията си за здраве и фитнес

Ключът към Health Connect за средностатистическия потребител е, че той позволява свържете различни приложения за здраве и уелнес така че да могат да споделят данни помежду си. По този начин приложение за фитнес може да използва данни за съня, записани от друго, или приложение за хранене може да проследява вашите стъпки и изгорени калории.
Обичайният процес включва отваряне на Health Connect на вашето устройство, докосване на начален поток, например „Старт“ или настройки И в секцията „Разрешения и данни“ достъпете разрешенията за приложенията. Оттам можете да активирате приложенията, които искате да интегрирате, и, най-важното, изберете кои категории данни всеки може да чете или записва (например, крачки да, но тегло не, или пулс да, но менструален цикъл не).
Health Connect групира информацията в тематични категорииФизическа активност, телесни мерки, менструален цикъл, сън, хранене, жизнени показатели, медицински досиета и др. Това улеснява виждането с един поглед какво се споделя, с кои приложения и за какви цели. Можете също така да прегледате кои приложения са имали достъп до данните ви наскоро.
Струва си да се отбележи, че в някои приложения е необходимо да активирате синхронизацията, преди тя да започне. в самото свързано приложение в допълнение към Health Connect. Ако нещо не се синхронизира, е добре да проверите както опциите на Health Connect, така и вътрешните настройки на всяко участващо приложение.
Какви данни се споделят и как се управляват?
Когато дадено приложение се свърже с Health Connect и му предоставите достъп, то придобива разрешение за четене и запис на определени типове данни в централния склад, винаги в рамките на категориите, които сте одобрили.
След като достъпът бъде предоставен, приложението може да получи достъп до данни от последните 30 дни и всяка нова информация, генерирана от този момент нататък. В случая на медицинска документация (медицинска история, доклади и др.), този 30-дневен срок не се прилага: с вашето изрично съгласие, заявленията могат Преглед на цялата ви налична медицинска история в Health Connect.
На техническо ниво данните се съхраняват в локално на самото устройство с AndroidВие контролирате кои приложения виждат каква информация и можете да отмените разрешения или да спрете споделянето на определени типове данни по всяко време. Услугите на свързаните приложения обаче все още могат да запазят... копия на данните, които вече са синхронизирани със собствените си сървъри, преди да отмените разрешението.
Този модел помага за намаляване на проблема с информационните силози в екосистемата на Android: вместо да има стъпала на едно място, тежести на друго и сън на още едно, всички тези части преминават през... обща точка за съхранение и оркестрацияподобряване както на потребителското изживяване, така и на качеството на последващите анализи.
Перспектива за оперативна съвместимост в здравеопазването: отвъд мобилните устройства
Фрагментацията на данните не е проблем само за фитнес приложенията: тя съществува в сектора на здравеопазването като цяло. историческа липса на оперативна съвместимостМедицинските данни често са разделени по региони, болници, застрахователи, лаборатории или дори по специфични изследователски проекти, създавайки истински информационни силози.
Тази фрагментация има огромна цена. Няколко анализа показват, че липсата на оперативна съвместимост може да доведе до около 4,7% от годишните разходи за здравеопазване на дадена странаТова се изразява в загуба на милиарди евро поради дублиране, неефективност, многократно тестване и по-лоша координация между специалистите.
Централизирането и правилното каталогизиране на здравните данни позволява подобряване на диагнозите и лечениятаТова намалява забавянията, избягва ненужните повторни тестове и улеснява достъпа на специалистите до съответната медицинска история на пациента, дори ако тя идва от друг регион или система. Освен това, тези добре структурирани данни са безценни за [следното]. биомедицински изследвания и разработване на нови лекарства.
В този по-широк контекст се очертава философията на проекти като Connect Health и неговата платформа Universal Health Chain (UHC), които целят да обединяване, централизиране и свързване на различни видове клинични данни в голям мащаб, използвайки международни стандарти (HL7 FHIR, IPS, USCDI, SNOMED, LOINC), блокчейн, изкуствен интелект и интернет на нещата. Въпреки че работят в различни лиги (макро-здравна система срещу локално хранилище за данни на Android), те споделят една и съща основна идея: да елиминират силозите за данни и да се даде на потребителя по-голям контрол върху медицинската му информация.
Health Connect за разработчици: подготовка на приложението
От техническа гледна точка, Health Connect предлага SDK в Jetpack (androidx.health.connect) Това позволява на приложенията да се интегрират с хранилището за данни Health Connect, както за четене, така и за запис на записи. Тази интеграция изисква някои стъпки за конфигуриране и най-добри практики.
Приложението Health Connect и наличността му
Приложението или модулът Health Connect е отговорен за обработва всички заявки, които приложението ви изпраща чрез SDK, включително съхранение на данни, контрол на разрешенията и достъп за четене и запис.
Достъпът зависи от версията на Android на устройството на потребителя: в Android 14 и по-нови версии модулът е включен по подразбиране; в Android 13 и по-стари версии е задължителен. Инсталирайте приложението Health Connect от Google PlaySDK поддържа Android 8 (API 26) и по-нови версии, но приложението Health Connect работи само от Android 9 (API 28) нататък. Това означава, че можете да подкрепите потребители с Android 8, като подготвите интеграцията, но само тези с Android 9 или по-нова версия ще могат да използват Health Connect.
За да разбере дали Health Connect е наличен и в какъв статус, клиентът може да се обади HealthConnectClient.getSdkStatus и действайте съответно: продължете, ако е възможно, или пренасочете потребителя към Google Play, за да инсталира или актуализира доставчика, ако е необходимо.
Добавете SDK за Health Connect
За да използвате API, трябва да добавите съответната зависимост към модул build.gradleОбикновено е включено нещо като библиотеката. androidx.health.connect:connect-client в раздела за зависимости. В идеалния случай се консултирайте с Официална документация за използване на най-новата версияс напредването на SDK с нови функции, промени в разрешенията и подобрения в стабилността.
Използване на API за наличност на функции
Тъй като потребителите не винаги актуализират версията си на Health Connect, SDK предлага API за проверете дали са налични определени функции на устройството, използвайки healthConnectClient.features.getFeatureStatus()Това извикване връща константи като FEATURE_STATUS_AVAILABLE или FEATURE_STATUS_UNAVAILABLE.
Ако дадена функция не е налична, се препоръчва Поканете потребителя да актуализира Health ConnectМоля, обърнете внимание, че някои възможности, свързани със системния модул, все още няма да са налични в Android 13 и по-стари версии, дори ако потребителят инсталира Health Connect APK, защото те зависят от самата рамка.
Разрешения и поверителност в Health Connect
Достъпът до данни за здравето и физическата активност е изключително чувствителен, така че Health Connect добавя допълнителен слой сигурност върху операциите за четене и записТова принуждава разработчиците да бъдат прозрачни, ясни и много прецизни относно това, което искат.
Декларация за разрешения в манифеста
Във файла AndroidManifest.xmlПриложението трябва ясно да декларира разрешения за четене и запис от които се нуждаете, използвайки стандартни етикети <uses-permission> в <manifest>Тези разрешения са групирани по тип данни, например:
<uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
<uses-permission android:name="android.permission.health.WRITE_HEART_RATE"/>
<uses-permission android:name="android.permission.health.READ_STEPS"/>
<uses-permission android:name="android.permission.health.WRITE_STEPS"/>
Освен това, тези разрешителни трябва да е в съответствие с това, което декларирате в Google Play Console Що се отнася до типовете данни от Health Connect, които приложението чете или записва, прозрачността е ключова: ако в бъдеще поискате нови разрешения, защото се нуждаете от повече категории данни, трябва... Включете както новите, така и тези, които вече сте използвалис изключение само на тези, които вече не са ви необходими.
Специален диалог за политиката за поверителност
Манифестът трябва също така да декларира дейност, способна да демонстрира политика за поверителност и обосновка за разрешенията от Health Connect, когато потребителят щракне върху съответната връзка на екрана с разрешения на Health Connect.
За версии до Android 13 е дефинирана Дейност (Activity), която получава намерението (intent). ACTION_SHOW_PERMISSIONS_RATIONALEИ започвайки с Android 14, a псевдоним на активност което отговаря на android.intent.action.VIEW_PERMISSION_USAGE със съответната категория, което позволява на Health Connect да покаже на потребителя защо приложението ви се нуждае от тези данни, как ги използвате и как може да ги контролира.
Динамично заявяване и управление на разрешителни
След като имате HealthConnectClientприложението ви трябва заявка за разрешения по време на изпълнениегрупиране на необходимите характеристики в набор (например стъпки при четене и писане и пулс). Преди да поискате нещо, препоръчително е да се консултирате с getGrantedPermissions() ако вече са били предоставени.
За да ги заявите, SDK предоставя договор за резултат чрез PermissionController.createRequestPermissionResultContract()Това показва на потребителя Стандартен дисплей на Health Connect където можете да приемете или откажете всяко разрешение. Вашето приложение трябва да е подготвено и за двата сценария: ако критичните разрешения бъдат отказани, потокът от функционалност трябва да бъде коригиран или ограничен.
Тъй като потребителят може отмяна на разрешенията по всяко време От Health Connect е добра практика периодично да се проверява кои разрешения са все още активни, особено преди да се извършват операции за четене или запис, които зависят от тях.
Включване и стартиране от Health Connect
Много приложения включват процес на адаптация, където се обясняват функции, изисква се съгласие и се конфигурират първоначални предпочитания. Health Connect позволява този процес да бъде... стартира директно от собствения си интерфейстака че потребителят да може да свърже приложението ви от Health Connect, а не само от самото приложение.
За да се направи това, се декларира дейност по внедряване със специфичните намерения (androidx.health.ACTION_SHOW_ONBOARDING за версии с APK и android.health.connect.action.SHOW_ONBOARDING (за Android 14 и по-нови версии), защитено от съответните разрешения. Моля, обърнете внимание, че Тази дейност може да бъде извикана многократноНапример, ако потребителят прекъсне връзката с приложението и по-късно реши да го свърже отново.
Основни операции: четене и запис на данни в Health Connect
След като интеграцията е настроена, приложението ви може вмъкване на нови записи в Health Connect или да прочетете съществуващи данни, както поотделно, така и обобщено.
Записване на данни: записи и метаданни
Данните са представени като обекти Record специфични за всеки тип (стъпки, пулс, тегло и др.). Например, за да се преброят стъпките, се използва StepsRecordкоето включва полета като брой стъпки, начален и краен час, часова зона и метаданни.
Вашето приложение изгражда запис с подходящите стойности и го вмъква с вмъкване на записи()Обичайно е записът да се допълва с обект Metadata уточнете дали става въпрос за данни саморегистрирано от устройство (например часовник) или въведени ръчно, включително информация за устройството (тип, произход и др.).
Когато източникът на данни е вашето собствено хранилище (например, бекенд или локална база данни), можете да се възползвате от clientRecordId y clientRecordVersion да контролирам идемпотентни вмъквания и актуализацииАко подадете запис със съществуващ клиентски идентификатор и по-висока версия, Health Connect замества предишните данни; в противен случай се създава нов.
След вмъкване, отговорът на вмъкване на записи() Включва списък с идентификатори, генерирани от Health Connect. Това е от съществено значение. съхранявайте тези вътрешни идентификатори на вашата собствена система, ако ще четете и синхронизирате данни, защото те ще са необходими за обработка на изтривания и промени.
Четене на индивидуални и обобщени данни
За да се прочетат конкретни данни, се използва readRecords() с искане от тип ReadRecordsRequest, където са посочени типът запис и филтър по времеви диапазон (TimeRangeFilterТова връща списък с подробни записи които приложението ви може да обработва един по един.
Въпреки това, за кумулативни типове, като например стъпки, се препоръчва използването aggregate() вместо readRecords()Агрегирането избягва проблемите на двойно отчитане, когато има множество източници (например, мобилно устройство и часовник едновременно) и предлага по-надеждни показатели, като например общия брой стъпки за даден период.
Важно е да се има предвид, че Health Connect може да чете данни. до 30 дни преди датата на издаване на разрешениетоАко приложението ви трябва да се консултира с по-стари истории, то трябва да поиска специално разрешение, например PERMISSION_READ_HEALTH_DATA_HISTORY, подлежи на по-строга обосновка и преглед поради чувствителността на информацията.
Разширена синхронизация между вашето приложение и Health Connect
Много здравни приложения имат свои собствени вътрешно хранилище за данни (локално или в облака), което действа като основен източник. Health Connect не е предназначен да замени това хранилище, а да се синхронизира с него, така че двете страни да останат съгласувани.
Пълният процес на синхронизация обикновено включва три операции: Вмъкване или актуализиране на данните от приложението ви в Health ConnectИзвлечете промените от Health Connect във вашето хранилище и изтрийте в Health Connect данните, които потребителят е изтрил във вашата система.
Промяна на токени и нарастваща консумация
За извличане на промени, Health Connect SDK предоставя механизма за Синхронизиране на променитеПриложението ви първо изисква токен за промяна, използвайки getChangesToken(), което показва за кои типове записи искате да проследявате промените. Този маркер представлява момент във времето, от който можете да заявите промени.
С този жетон, вие се обаждате getChanges() в цикъл, докато спрете да получавате повече елементи. Всеки отговор включва списък с промени (от тип Промяна на прехвърлянето или промяна на изтриването), индикатор дали има още промени и нов токен за съхранение за следващия път. Приложението ви трябва да премине през всички промени, да ги обработи и накрая да запази nextChangesToken като референтен номер за синхронизация.
Промените при вмъкване/актуализиране (UpsertionChange) включват целия запис, заедно с неговите метаданни. За да избегнете повторно импортиране на вашите собствени данни, е добре проверете полето dataOrigin.packageName и пропускайте записи, произхождащи от вашето собствено приложение. Промените от изтриване получават само Идентификатор на изтрит записОт съображения за поверителност е изключително важно предварително да сте съхранили тези идентификатори, свързани с вашите данни.
Общата препоръка е да се използват суап токени. разделени от всеки тип данни които консумирате, освен ако вашата бизнес логика не изисква едновременно обработване на няколко типа. По този начин, ако потребителят отмени едно от разрешенията, вие не нарушавате цялата синхронизация.
Стратегии при изтичане на борсовия токен
Борсовите токени имат срок на годност Ако изминат повече от 30 дни без употреба. За да избегнете загуба на информация, трябва да планирате стратегия за възстановяване, в случай че даден токен стане невалиден.
Идеалният вариант е да се съхранява времевият печат на последно успешно четене И когато даден токен изтече, прочетете отново данните от тази точка (или от последните 30 дни), прилагайки дедупликация, използвайки клиентски идентификатори или Health Connect идентификатори. Други по-малко усъвършенствани стратегии включват изтриване на данните ви от последните 30 дни и повторното им импортиране или просто прочитане на този интервал без дедупликация (последното, най-лошото, може да покаже дубликати на потребителя).
Препоръчително е също така да заявите обменни токени предварително, дори и да не ги използвате веднага, за да поддържате разумен цикъл на актуализация и избягвайте да изтичате времето.
Синхронизация от носими устройства с ниска латентност
Когато източникът на данни е носимо устройство Когато е свързан чрез Bluetooth Low Energy (BLE), канал за синхронизация с ниска латентност може да бъде полезен, за да се гарантира, че данните достигат до Health Connect, дори ако приложението не е на преден план.
За този сценарий Android предлага Услуга за придружаващо устройство, което позволява на приложението ви да остане свързано с устройство и ефективно да получава данни (напр. известия или GATT подкани) от Android 8 (API 26) нататък.
Типичният процес е: първо потребителят бива насочван към Свържете носимото устройство с помощта на CompanionDeviceManagerполучаване на необходимите разрешения за комуникация с него. След това в манифеста се декларира услуга, която разширява CompanionDeviceService и е свързана с действието android.companion.CompanionDeviceService, защитено с разрешение android.permission.BIND_COMPANION_DEVICE_SERVICE.
Услугата управлява GATT връзките и техните обратни извиквания. Всеки път, когато носимото устройство изпраща данни (например ново сърдечна честота или пакет от стъпки), услугата обработва получената стойност, преобразува я в Записи на Health Connect и ги вмъква с помощта на insertRecords()Услугата обаче не може да изисква разрешения самостоятелно: тя трябва да разчита на това приложението вече да е поискало и получило необходимите разрешения (например записване на пулс или стъпки).
Добри практики за четене на преден и заден план
По дизайн, приложенията могат само Четене на данни от Health Connect, когато са на преден планосвен ако не им е предоставено специално разрешение за четене във фонов режим. Това се прави, за да се ограничи тихият достъп до чувствителни данни.
Ако приложението ви получи разрешение за четене във фонов режим, потребителят ще предостави по-високо ниво на достъп, така че е важно да обясните това ясно. Защо ви е необходима тази способност? и какви предимства предлага (например автоматична синхронизация, без да е необходимо да отваряте приложението). Въпреки това, трябва да предположите, че достъпът може да е ограничен. прекъсвам по всяко времеНапример, ако системата затвори приложението, ще трябва да възобновите процеса на синхронизация в следващата сесия.
На практика има смисъл да се проверява за нови данни в два ключови момента: всеки път, когато приложението излезе на преден план (използвайки събития от жизнения цикъл) и периодично, докато потребителят го държи отворен, като го уведомява, когато има актуализирани данни, за да може да обновява изгледи, графики или обобщения.
Чрез комбиниране на тези практики с добро управление на разрешенията, отговорно използване на токени за промяна и последователна политика за съхранение на идентификационни данни, както приложенията за уелнес на крайните потребители, така и по-модерните решения за управление на здравни данни могат да използват Health Connect за... намаляване на фрагментацията, подобряване на качеството на данните и предлагат по-последователни преживявания, като потребителят винаги контролира какво се споделя и с кого. Споделете тази информация, за да могат повече хора да научат за новия Health Connect и какви здравни данни предлага.
