건강
| 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
|---|---|---|---|---|
| 2025년 5월 7일 | 1.0.0 | - | - | 1.1.0-alpha05 |
종속 항목 선언
Health의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용을 알아보려면 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { implementation "androidx.health:health-services-client:1.1.0-alpha05" }
Kotlin
dependencies { implementation("androidx.health:health-services-client:1.1.0-alpha05") }
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
Health Connect Client 버전 1.0
버전 1.0.0-alpha04
2022년 8월 24일
1.0.0-alpha04부터 androidx.health:health-connect-client가 androidx.health.connect:connect-client로 이전되었습니다. 향후 출시는 헬스 커넥트 페이지에서 androidx.health.connect:connect-client 및 관련 출시 노트를 사용하세요.
이전하려면 종속 항목 가져오기를 androidx.health:health-connect-client:1.0.0-alpha03에서 androidx.health.connect:connect-client:1.0.0-alpha04로 변경하면 됩니다.
버전 1.0.0-alpha03
2022년 7월 27일
androidx.health:health-connect-client:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- 새로운 API 변경사항 요약: 읽기, 쓰기, 집계 API에 단위 집합이 추가되었습니다. 이제 앱에서
NutritionRecord영양소 관련 그램 또는 밀리그램과 같이 원하는 단위로 기록을 검색하거나 쓸 수 있습니다.
API 변경사항
- 다양한 요청 응답 객체에서
List<DataOrigin>가Set<DataOrigin>이 되도록 수정합니다. (I42342) - 전원->에너지에서 기초 총 칼로리의 단위를 수정합니다. (I0b429)
- 시리즈 기록 내에서 시리즈 샘플 클래스를 이동했습니다. (Ica9bb)
CyclingPedalingCadence->CyclingPedalingCadenceRecord.SampleHeartRate->HeartRateRecord.SampleStepsCadence->StepsCadenceRecord.Sample
HealthDataRequestPermission클래스를 지원 중단하고PermissionController.createRequestPermissionActivityContract로 대체했습니다. 이를 통해 검색 가능성과 통합 매개변수가 개선됩니다. (I81e7f)- 부피에 미국 액량 온스를 추가했습니다. (I5f03d)
- 속도 단위 유형을 추가했습니다. (I1d574)
- 비율 단위 유형을 추가했습니다. (I08f23)
- 압력 단위 유형을 추가했습니다. (Ifb01f)
- 질량 단위 유형을 추가했습니다. (Ifd81a)
- 부피 단위 유형을 추가했습니다. (I59ad1)
- 전원 단위 유형을 추가했습니다. 전원 시리즈 샘플 클래스를
PowerRecord클래스 내에서 이동했습니다. (I5b1e5) - 에너지 단위 유형을 추가했습니다. (I983ae)
- 온도 단위 유형을 추가했습니다. (I4cdb5)
- Exercise에 관련되도록 Activity 참조의 이름을 바꿉니다. (I3f936) 예를 들면 다음과 같습니다.
ActivityLap에서ExerciseLapRecord로 이름을 바꿨습니다.ActivityEvent에서ExerciseEventRecord로 이름을 바꿨습니다.Repetitions에서ExerciseRepetitionsRecord로 이름을 바꿨습니다.ActivitySession에서ExerciseSessionRecord로 이름을 바꿨습니다.
- 기록 아래에 중첩된 패키지 메타데이터를 이동했습니다. (Ie0835)
- 남은 모든 기록에서 길이 단위를 사용합니다. (Ib10dd)
ActivityLapRecordElevationGainedRecordHeightRecordHipCircumferenceRecordWaistCircumferenceRecord
- 길이 단위 유형을 추가했습니다. (Idae39)
CervicalMucus설명 용어를 업데이트합니다. (I25a2b)CervicalMucus.Amount->CervicalMucusRecord.TextureCervicalMucus.Appearance->CervicalMucusRecord.Sensation
- 모든 기록 클래스 이름에 'Record' 접미사를 추가했습니다. (I1ffc2)
버그 수정
- lib가 출시 버전과
minifyEnabledtrue로 빌드된 경우 발생하는 proguard 문제를 수정했습니다. (I78933) - 공용으로 사용할 수 없는 문서를 숨깁니다. (I7a08f)
- 자체 protobuf 종속 항목이 있을 수 있는 클라이언트의 문제를 수정했습니다(https://android-review.googlesource.com/c/platform/frameworks/support/+/2105430).
버전 1.0.0-alpha02
2022년 6월 1일
androidx.health:health-connect-client:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
AggregationResult에서hasMetric및getMetric을 지원 중단하고 contains 연산자와 get 연산자를 추가했습니다. (I7cc7c)OvulationTest.Result.HIGH및OvulationTest.Result.INCONCLUSIVE를 추가합니다. (I9f9c4)
버그 수정
- SDK 요구사항을 26개로 줄입니다. (I6d201)
버전 1.0.0-alpha01
2022년 5월 11일
androidx.health:health-connect-client:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 다른 앱에서 공유하는 피트니스 및 건강 기록을 읽는 API
- 피트니스 및 건강 기록을 작성하여 다른 앱과 공유하는 API
- 액세스할 수 있는 기록의 집계된 측정항목을 가져오는 API
- 다른 앱에 의한 기록 증분 변경사항(삽입, 업데이트, 삭제)을 가져오는 API
- 사용자에게 건강 관련 권한을 요청하는 메시지를 표시하는 API
- 건강 관련 권한을 확인하거나 부여된 권한을 취소하는 API
Health Services Client 버전 1.1
버전 1.1.0-alpha05
2024년 12월 11일
androidx.health:health-services-client:1.1.0-alpha05, androidx.health:health-services-client-external-protobuf:1.1.0-alpha05 및 androidx.health:health-services-client-proto:1.1.0-alpha05이 출시되었습니다. 버전 1.1.0-alpha05에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 이제 필요한 클래스가 제거되지 않도록 하는 ProGuard 규칙이 포함되어 있습니다. (65d0c3f)
버그 수정
- 이제 이 라이브러리는 유형 사용인 JSpecify nullness 주석을 사용합니다. Kotlin 개발자는 올바른 사용을 적용하기 위해 다음 컴파일러 인수
-Xjspecify-annotations=strict를 사용해야 합니다 (Kotlin 컴파일러 버전 2.1.0부터 기본값임). (Iaf73a, b/326456246)
버전 1.1.0-alpha04
2024년 10월 16일
androidx.health:health-services-client:1.1.0-alpha04, androidx.health:health-services-client-external-protobuf:1.1.0-alpha04 및 androidx.health:health-services-client-proto:1.1.0-alpha04이 출시되었습니다. 버전 1.1.0-alpha04에는 이 커밋이 포함되어 있습니다.
보안 수정사항
- 이 변경사항부터 androidx는 CVE-2024-7254를 해결하기 위해 protobuf 4.28.2를 기준으로 컴파일합니다. 취약점 위험을 해결하려면
androidx.health:health-services-client종속 항목을 최신 1.1.0-alpha04로 업그레이드하세요.
버전 1.1.0-alpha02
2023년 12월 13일
androidx.health:health-services-client:1.1.0-alpha02이 출시되었습니다. 버전 1.1.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 지원되는
ExerciseEvent에 단일 정보 소스를 사용합니다. (I03308)
버그 수정
- 일부 버그 수정 및 문서 개선
버전 1.1.0-alpha01
2023년 8월 9일
androidx.health:health-services-client:1.1.0-alpha01이 출시되었습니다. 버전 1.1.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 첫 번째 구체적인 이벤트인
GolfShotEvent와 함께ExerciseEventAPI가 추가되었습니다.ExerciseEvent프리미티브를 사용하면 개발자가 지원을 쿼리하고 시계에서 무언가가 감지되면 알림을 요청할 수 있습니다. 예를 들어GolfShotEvent를 사용하면 개발자가 사용자가 골프 샷을 칠 때 알림을 받을 수 있으며 인식된 스윙 유형도 수신할 수 있습니다.
API 변경사항
- WHS SDK 클라이언트가
GolfShotEvent기능을 사용하도록 설정합니다. (I76b03)
버그 수정
- 알 수 없는 운동 이벤트 기능을 발견할 때 예외를 적극적으로 발생시키는 대신 목록에서 필터링합니다. (I06afc)
Health Services Client 버전 1.0
버전 1.0.0
2025년 5월 7일
androidx.health:health-services-client:1.0.0이 출시되었습니다. 버전 1.0.0에는 이 커밋이 포함되어 있습니다.
1.0.0의 주요 기능
- 1.0.0-rc02를 보건 서비스 클라이언트의 안정화 버전으로 승격합니다. 1.0.0-rc02와 비교해 변경사항이 없습니다.
버전 1.1.0-alpha03
2024년 5월 14일
androidx.health:health-services-client:1.1.0-alpha03이 출시되었습니다. 버전 1.1.0-alpha03에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 샘플 데이터 유형 또는 통계 샘플 데이터 유형의 목표를 추적할 수 있는
DebouncedGoalAPI를 도입했습니다(데브바운싱 기능(initialDelay및durationAtThreshold) 사용 시). (I09be9) - 다음과 같은 고급 실행 측정항목 샘플과 통계
DataTypes를 추가했습니다. (I0b8b5):Ground Contact TimeVertical OscillationVertical RatioStride Length
API 변경사항
ELEVATION_GAIN_DAILYDataType개가 추가되었습니다. (I059d1)SWIM_LAP_COUNT_TOTALDataType를SWIM_LAP_COUNT의 집계된DataType로 추가했습니다. (I0beeb)
버그 수정
- IPC 안정성을 개선하기 위해 다양한 문제를 수정했습니다.
버전 1.0.0-rc02
2024년 4월 3일
androidx.health:health-services-client:1.0.0-rc02이 출시되었습니다. 버전 1.0.0-rc02에는 이 커밋이 포함되어 있습니다. 이 버전은 버그 수정 전용 출시이며 API 변경사항은 포함되어 있지 않습니다.
버그 수정
- IPC 안정성을 개선하기 위한 다양한 문제가 수정되었습니다.
startExercise를prepareExercise와 동시에 호출하면ConcurrentModificationException이 발생할 수 있는 문제를 수정했습니다. (4e37773)- 문서 개선
버전 1.0.0-rc01
2023년 7월 26일
androidx.health:health-services-client:1.0.0-rc01이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.
새로운 기능
- 건강 관리 서비스가 베타에서 안정화된 후 1.0.0-rc01로 이동했습니다.
API 변경사항
- h~m 경로의 공개 API 파일과 실험용 API 파일을 병합했습니다. (Ic4630, b/278769092)
- 해당 사항 없음. API 파일 변경사항은 메서드 재정렬에 불과합니다. (I5fa95)
버전 1.0.0-beta03
2023년 4월 5일
androidx.health:health-services-client:1.0.0-beta03이 출시되었습니다. 버전 1.0.0-beta03에 포함된 커밋을 확인하세요.
새로운 기능
이제 BatchingMode를 구성된 간격으로 일괄 운동 데이터를 전송하도록 구성할 수 있습니다. 이때 운동 중(ExerciseConfig를 통한 운동 시작 시 또는 재정의 메서드를 통한 운동 중) 기본값 대신 구성된 간격을 사용합니다. Google Play 스토어의 향후 건강 관리 서비스 출시에서 이 기능이 지원되며 운동 기능을 통해 확인할 수 있습니다. 참고: 일괄 처리 모드는 기기가 상호작용이 없는 전원 상태에 있는 동안 적용되며 전력 소비가 증가합니다.
API 변경사항
- 정지 함수
overrideBatchingModesForActiveExercise가 실패할 때HealthServicesException이 발생합니다. (Ifd387) - 비동기
overrideBatchingModesForActiveExerciseAPI에 더 kotlin 친화적인 suspend 함수를 도입했습니다. (I7dd15) BatchingMode가ExerciseConfig에서 선택사항을 재정의합니다. (Id22e9)
버그 수정
DataType및ExerciseUpdate사소한 수정사항 (5e185f)
버전 1.0.0-beta02
2023년 1월 11일
androidx.health:health-services-client:1.0.0-beta02가 출시되었습니다. 버전 1.0.0-beta02에 포함된 커밋을 확인하세요.
새로운 기능
- Kotlin 지원을 개선하기 위해
ExerciseClient,PassiveMonitoringClient,MeasureClient의 기존 비동기ListenableFutureAPI에 맞는suspend확장 함수를 추가했습니다. (Iadea4) - 운동을 진행하는 중에 업데이트할 수 있게 해주는
ExerciseTypeConfigAPI를 추가했습니다. 골프를 치는 중에ExerciseTypeConfig를 업데이트할 수 있는GolfExerciseTypeConfig를 추가했습니다. (I4c539)
API 변경사항
- 정지 함수에서
HealthServicesException이 발생합니다. (I5e509) - 이전 버전과의 호환성을 위해 다른 생성자를 추가합니다. (Iddeda)
- 정지 함수에서
RuntimeException이 발생합니다. (I53bca) - 예외 발생의 기본 구현을 삭제했습니다. (Id947f)
@JvmDefaultWithCompatibility주석을 추가합니다. (I8f206)
버그 수정
버전 1.0.0-beta01
2022년 10월 24일
androidx.health:health-services-client:1.0.0-beta01이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
PassiveMonitoringClient를 통해 건강 이벤트를 수신 대기하는 기능이 추가되었으며 첫 번째 이벤트는HealthEvent.FALL_DETECTED입니다.새 ExerciseType:
ALPINE_SKIINGBACKPACKINGCROSS_COUNTRY_SKIINGHORSE_RIDINGINLINE_SKATINGMOUNTAIN_BIKINGORIENTEERINGROLLER_SKATINGYACHTING
새 DataType:
ELEVATION_LOSSGOLF_SHOT_COUNT
API 변경사항
- 데이터 모델링 방법 업데이트: 데이터 모델과
DataType,DataPoint, 기본 값이 표현되는 방식이 변경되었습니다. 최상위 수준의 영향은 이제 API가 훨씬 더 명시적이고 유형 안전성이 높다는 것입니다. - 위치
DataPoint는 더 이상DoubleArray가 아니라 강타입(strongly typed)LocationData객체로 표현됩니다. - 새로운 수동 리스너 API 세트로 이동했습니다.
- 브로드캐스트가
PassiveListenerService로 대체되었습니다. - 기존 리스너가 단일 리스너(
PassiveListenerCallback)로 대체되었습니다.
- 브로드캐스트가
- 애플리케이션이 더 이상 자체 매니페스트에 이를 지정할 필요가 없도록 건강 관리 서비스 매니페스트에
<queries>태그를 추가했습니다(빌드 시스템에서 매니페스트 병합이 사용 설정된 경우). - 운동 종료 중/종료를 나타내는 많은
ExerciseState에서 벗어나 새로운 운동 상태(ENDING및ENDED)를 추가했습니다. 이러한 상태는 이제ExerciseEndReason과 결합되어 이전 상태 전체를 나타냅니다. - 일일 수동적 목표만 지원한다는 것을 더 잘 표현하도록
PassiveListenerConfigsetPassiveGoals의 이름이setDailyGoals로 변경되었습니다. - 이제
PassiveGoal이 항상REPEATED이고 수동TriggerFrequency가 삭제되었습니다. - 모든
Long및Double매개변수에@FloatRange주석을 달았습니다. ExerciseConfig에swimmingPoolLengthMeters속성을 추가했습니다. 이 속성은 풀 수영 거리 계산을 개선하기 위해 선택적으로 지정될 수 있습니다.ExerciseUpdate.activeDuration이 지원 중단되었습니다. 대신ExerciseUpdate.activeDurationCheckpoint를 사용합니다.ExerciseClient에서 APIflushExerciseAsync()의 이름이flushAsync()로 변경되었습니다.Measure.registerCallback에서Measure.registerMeasureCallback으로 이름이 변경되었습니다.- 일반적인 이름 지정 변경사항은 다음과 같습니다.
- 이제 거리 속성에
meters접미사가 있습니다. - 이제 콜백 메서드 이름이 과거형입니다.
- 대부분의 약어가 삭제되었습니다(
HrAccuracy는 이제HeartRateAccuracy임). enableFoo패턴을 따르는 속성의 이름이 이제isFooEnabled입니다.
- 이제 거리 속성에
- enum에서 이전했습니다.
Double로 표시되는 시간이 이제Duration으로 표시됩니다.ListenableFuture<Void?>를 반환하는 함수가 이제ListenableFuture<Void>를 반환합니다.- 이제 콜백을 허용하는 함수에서 항상 콜백이 마지막 매개변수로 표시됩니다.
- 이제 빌더가 포함된 클래스에도 항상 공개 생성자가 있습니다.
- 등록 함수가 더 이상
ListenableFuture를 반환하지 않으며 대신 제공된 콜백에 등록 상태를 전달합니다. - KDocs가 개선되었습니다.
- 공개 클래스는 더 이상
ProtoParcelable을 확장하지 않습니다.
버그 수정
- IPC 안정성이 전반적으로 개선되었습니다. (I3b1e2)
버전 1.0.0-alpha03
2021년 11월 3일
androidx.health:health-services-client:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
새로운 기능
- SDK는 건강 관리 서비스 APK와의 IPC 연결이 끊어진 경우 측정, 운동 리스너 및 수동 모니터링 콜백 등록 요청을 자동으로 다시 등록합니다.
API 변경사항
- Health Services Client가 현재 Wear3에서만 지원되므로 SDK 라이브러리의 minSdkVersion이 API 수준 30으로 변경되었습니다.
버전 1.0.0-alpha02
2021년 9월 29일
androidx.health:health-services-client:1.0.0-alpha02가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 이제
ExerciseClient에서 운동 준비를 지원합니다. 그럼 운동을 시작하기 전에 클라이언트가 센서를 준비하고 GPS 수정과 같은 작업을 기다리게 됩니다. - CumulativeDataPoints 및 StatisticalDataPoints AggregateDataPoint 클래스를 도입하여 활성 운동 중에 추적된 집계 측정항목을 더 효과적으로 모델링합니다. CumulativeDataPoints는 집계된 구간 데이터 유형(예: 운동 중 총 거리)의 누적 값을 보유하며, StatisticalDataPoints는 샘플링된 데이터 포인트(예: 최소, 최대, 평균 HeartRateBpm)의 집계를 모델링합니다. 이전
AGGREGATE_*DataType을 대체하며getLatestAggregateMetrics()를 통해 ExerciseUpdate에서 액세스할 수 있습니다.AGGREGATE_*DataType은 더 이상 지원되지 않습니다. PassiveMonitoring이벤트 이름이PassiveGoals로 변경되었으며, 이를 통해 일일 측정항목(예: DAILY_STEPS)과 같은 데이터 유형에서 목표를 설정하고 목표 달성 시 알림을 받을 수 있습니다.- 새로운 HrAccuracy, LocationAccuracy 및 LocationAvailability 클래스를 도입하여 심박수, 위치 정확도 및 이용 가능 여부의 모델링을 개선했습니다.
ExerciseConfig및 새PassiveMonitoringConfig필드의 이름 지정이 개선되고 GPS 기반 데이터를 요청하기 위해ExerciseConfig.shouldEnableGps가 도입되었습니다.
버그 수정
- 하위 호환성 지원 개선을 위해 Proto 지원 IPC 전송으로 이전했습니다.
버전 1.0.0-alpha01
2021년 5월 18일
androidx.health:health-services-client:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
초기 출시의 기능
건강 관리 서비스 라이브러리는 개발자가 기기별 센서 구현과 통합할 수 있도록 일관된 API 세트를 제공합니다. Wear OS 3 에뮬레이터 및 향후 출시될 기기에서는 기본적으로 지원되며 향후 추가 플랫폼이 지원됩니다. 이 초기 출시에는 세 가지 최상위 API 노출 영역(ExerciseClient, PassiveMonitoringClient, MeasureClient)이 포함되어 있습니다.
ExerciseClient
ExerciseClient는 걷기와 달리기에서 댄스와 수구에 이르기까지 최대 82개의 다양한 ExerciseType으로 활동적인 운동을 추적하는 애플리케이션용으로 만들어졌습니다. 이러한 운동을 추적하는 동안 기기에서 사용할 수 있는 운동 유형과 하드웨어에 따라 50개의 다양한 DataType이 제공됩니다. 시작하려면 ExerciseConfig에서 관련 정보를 지정하고 exerciseClient.startExercise를 호출한 후 업데이트 리스너에서 진행 상황을 수신 대기하면 됩니다.
PassiveMonitoringClient
PassiveMonitoringClient는 애플리케이션이 하루 종일 사용자 활동을 추적하는 경우에 적합합니다. PendingIntent를 일련의 DataType에 등록하면 일괄 처리된 변경사항을 처리할 수 있습니다. 또는 특정 걸음 수 충족 등 Event를 지정할 수 있습니다.
MeasureClient
사용자가 운동 도중이나 하루 종일이 아닌 특정 순간의 심박수를 측정해야 할 때가 있습니다. 그러한 순간에는 MeasureClient가 적합합니다. 지원되는 DataType에 콜백을 등록하여 데이터 스트림을 수신하면 더 이상 필요하지 않을 때 콜백을 등록 취소할 수 있습니다.