Если вы используете на своем 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Это уже не просто отдельное приложение. Это значит, что вам не нужно ничего скачивать из Google Play, чтобы оно работало, и им можно управлять непосредственно из системных настроек.
Чтобы открыть его на Android 14 или выше, перейдите в приложение. Настройки устройства и перейдите к настройкам безопасности и конфиденциальности. Обычно это выглядит так: Настройки > Безопасность и конфиденциальность > Настройки конфиденциальности > Health Connect (или Health Connected, в зависимости от перевода и производителя). Вы также можете... Найдите «Health Connect» в строке поиска настроек. чтобы добраться туда быстрее.
В этой версии при обновлении телефона система Приложение автоматически переносит данные, которые у вас были в предыдущей версии. От Health Connect (если вы использовали его ранее) до интегрированного системного модуля, включая все уже предоставленные разрешения. Таким образом, вы можете даже удалить старое приложение, не теряя при этом работоспособность сервиса.
Приложение Health Connect на Android 13 и более ранних версиях
В Android 13 (API 33) и более ранних версиях Health Connect не входит в систему, поэтому его необходимо устанавливать отдельно. Установите приложение из магазина Google Play. чтобы иметь возможность его использовать.
После установки приложения вы можете открыть его в разделе «Настройки» > «Приложения» > «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 Play.SDK поддерживает Android 8 (API 26) и более поздние версии, но приложение Health Connect работает только начиная с Android 9 (API 28). Это означает, что вы можете обеспечить поддержку пользователей Android 8, подготовив интеграцию, но фактически использовать Health Connect смогут только пользователи Android 9 или выше.
Чтобы узнать, доступна ли услуга 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 и более ранних версиях, даже если пользователь установит APK-файл Health Connect, поскольку они зависят от самой платформы.
Разрешения и конфиденциальность в 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. Что касается типов данных Health Connect, которые приложение считывает или записывает, прозрачность имеет ключевое значение: если вы в будущем запросите новые разрешения, потому что вам потребуется больше категорий данных, вы должны... Укажите как новые, так и те, которые вы уже использовали.исключая только те, которые вам больше не нужны.
Конкретный диалог о политике конфиденциальности
В манифесте также следует указать на деятельность, способную продемонстрировать следующее: политика конфиденциальности и обоснование необходимости разрешений из Health Connect, когда пользователь нажимает на соответствующую ссылку на экране разрешений Health Connect.
Для версий Android до 13 включительно определяется Activity, которая получает Intent. ACTION_SHOW_PERMISSIONS_RATIONALEА начиная с Android 14, псевдоним активности кто отвечает на 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которая включает такие поля, как количество шагов, время начала и окончания, часовой пояс и метаданные.
Ваше приложение создает запись с соответствующими значениями и вставляет ее. insertRecords()Обычно запись дополняют объектом. Metadata Укажите, является ли это данными. саморегистрируется с помощью устройства (например, часы) или введены вручную, включая информацию об устройстве (тип, происхождение и т. д.).
Если источником данных является ваше собственное хранилище (например, бэкэнд или локальная база данных), вы можете воспользоваться следующими преимуществами: clientRecordId y clientRecordVersion контролировать идемпотентные вставки и обновленияЕсли вы отправляете запись с уже существующим идентификатором клиента и более новой версией, Health Connect заменяет предыдущие данные; в противном случае создается новая запись.
После вставки ответ insertRecords() В него входит список идентификаторов, сгенерированных 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 данные, которые пользователь удалил в вашей системе.
Смена токенов и постепенное их потребление
Для отслеживания изменений SDK Health Connect предоставляет соответствующий механизм. Изменения синхронизацииВаше приложение сначала запрашивает токен смены, используя getChangesToken()Этот токен указывает, для каких типов записей вы хотите отслеживать изменения. Он обозначает момент времени, с которого вы можете запросить внесение изменений.
С этим жетоном вы звоните getChanges() цикл повторяется до тех пор, пока не прекратится получение новых элементов. Каждый ответ включает список изменений (типа). UpsertionChange or DeleteChange), индикатор наличия дополнительных изменений и новый токен для сохранения в следующий раз. Ваше приложение должно перебрать все изменения, обработать их и, наконец, сохранить. nextChangesToken в качестве эталона синхронизации.
Изменения при вставке/обновлении (UpsertionChange) затрагивают всю запись, включая ее метаданные. Чтобы избежать повторного импорта собственных данных, это хорошая идея. проверьте поле dataOrigin.packageName и исключить записи, созданные в вашем собственном приложении. Изменения, связанные с удалением, получают только Идентификатор удалённой записиВ целях обеспечения конфиденциальности крайне важно, чтобы вы предварительно сохранили эти идентификаторы, связанные с вашими данными.
Общая рекомендация — использовать токены обмена. разделены по каждому типу данных Вы можете использовать эти данные, если только ваша бизнес-логика не требует одновременной обработки нескольких типов. Таким образом, если пользователь отзовет одно из разрешений, вы не нарушите всю синхронизацию.
Стратегии действий при истечении срока действия токена сдачи.
Токены обмена имеют срок годности Если токен не используется более 30 дней, во избежание потери информации следует разработать стратегию восстановления на случай, если токен станет недействительным.
Идеальный вариант — хранить метку времени. последнее успешное прочтение А когда срок действия токена истекает, пересчитывайте данные с этого момента (или за последние 30 дней), применяя дедупликацию с использованием идентификаторов клиентов или идентификаторов Health Connect. Другие, менее совершенные стратегии, включают удаление данных за последние 30 дней и их повторный импорт, или просто чтение данных за этот период без дедупликации (последний вариант, наихудший, может показать пользователю дубликаты).
Также рекомендуется запрашивать токены для обмена заранее, даже если вы не собираетесь использовать их немедленно, чтобы поддерживать стабильность. разумный цикл обновления и не допустить превышения времени.
Синхронизация с носимых устройств с низкой задержкой.
Когда источником данных является носимое устройство При подключении через Bluetooth Low Energy (BLE) может быть полезен канал синхронизации с низкой задержкой, чтобы гарантировать передачу данных в Health Connect, даже если приложение не находится в фоновом режиме.
Для этого сценария Android предлагает CompanionDeviceServiceЭто позволяет вашему приложению оставаться связанным с устройством и эффективно получать данные (например, уведомления или запросы 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 и о том, какие данные о здоровье он предоставляет.
