센서·건강 데이터

Health Connect

공유된 건강 기록을 읽으며, 기본 설정에서는 비활성입니다.

기준일
이 페이지에서

현재 상태

기본 비활성: registry.json의 health_connect.enabled는 false이고 allowlist에 포함되지 않습니다. 아래 구현 목록은 현재 기본 앱에서 모두 자동 수집된다는 의미가 아닙니다.

다른 앱이 Health Connect에 공유한 기록을 읽는 Android 플러그인입니다. 웨어러블 기록이 제공 앱에만 있고 Health Connect에는 없다면 이 경로로 읽을 수 없습니다.

유형별 구현

타입코드에서 확인한 경로
steps조회, 이벤트 변환, 수치 적재
sleep조회, 세션 적재, 소유자 기준 조정·갱신
heart_rate조회·변환, 각 읽기 결과의 최신 샘플 적재
exercise조회·변환, 운동 길이 수치 적재
blood_glucose조회·변환·수치 적재
blood_pressure수축기·이완기 수치 적재
body_fat조회·변환·수치 적재
weight타입 선언은 있으나 pull 분기의 구현이 주석 처리됨

선언된 타입과 실행되는 코드를 구분해야 합니다. 특히 체중을 현재 완성된 수집 항목으로 안내하지 않습니다.

사용 조건과 활성화

Android 14 이상에서는 Health Connect가 시스템에 포함됩니다. 이전 버전은 별도 앱 설치가 필요할 수 있습니다. 정확한 준비 절차와 기능 가용성은 Android 공식 안내를 참고하세요.

활성화는 registry의 enabled, types, allowlist, 빌드의 건강 기능 설정과 권한 경로를 함께 맞추는 개발 작업입니다. 설정 변경 후 실제 기록 조회와 Room 적재를 검증합니다. 이 문서 작성 과정에서는 기본 수집 설정을 변경하지 않았습니다.

수면 기록과 시간 기준

현재 앱에는 Health Connect 수면 새로고침과 수면 종료를 기상 시각의 근거로 사용하는 경로가 있습니다. 백그라운드 읽기 권한은 실행 가능한 해당 수면 기준과 기기 지원 조건을 따릅니다. 수면 기록 부재, 권한 부재, 제공 기능 사용 불가, 조회 실패는 정상 수면 종료 시각과 구분해야 합니다.

데이터 공유 범위 주의

발표자료의 '삼성헬스 공유 17종'은 제공 앱의 공유 범위에 관한 설명입니다. DTRAC의 17종 전체 연동 완료를 뜻하지 않습니다. 실제 지원은 위 표와 연구 설정을 기준으로 확인하세요.

문서 근거

현재 작업 트리 기준 · 소스 경로 · HEAD 8213e6b7

  • app/src/main/assets/manifests/plugins/registry.json
  • plugins/healthconnect/src/main/java/com/hdil/datacollection/plugins/healthconnect/HealthConnectPlugin.kt
  • plugins/healthconnect/src/main/java/com/hdil/datacollection/plugins/healthconnect/HealthConnectManager.kt
  • app/src/main/java/com/hdil/datacollection/MainActivity.kt
  • app/src/main/java/com/hdil/datacollection/availability/RoomWakeAnchorRepository.kt
  • app/src/main/AndroidManifest.xml

참고 자료

DTRAC Android연세대학교 · 이봉신 연구팀