성능 상태

  
플랫폼에 구애받지 않는 방식으로 성능 기준에 적합한 건강 애플리케이션을 만듭니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 12월 11일 - 1.0.0-rc02 - 1.1.0-alpha05

종속 항목 선언

Health의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용을 알아보려면 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

dependencies {
    implementation "androidx.health:health-services-client:1.1.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.health:health-services-client:1.1.0-alpha03")
}

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

Health Connect Client 버전 1.0

버전 1.0.0-alpha04

2022년 8월 24일

1.0.0-alpha04부터 androidx.health:health-connect-clientandroidx.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.Sample
    • HeartRate -> HeartRateRecord.Sample
    • StepsCadence -> 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)
    • ActivityLapRecord
    • ElevationGainedRecord
    • HeightRecord
    • HipCircumferenceRecord
    • WaistCircumferenceRecord
  • 길이 단위 유형을 추가했습니다. (Idae39)
  • CervicalMucus 설명 용어를 업데이트합니다. (I25a2b)
    • CervicalMucus.Amount -> CervicalMucusRecord.Texture
    • CervicalMucus.Appearance -> CervicalMucusRecord.Sensation
  • 모든 기록 클래스 이름에 'Record' 접미사를 추가했습니다. (I1ffc2)

버그 수정

  • lib가 출시 버전과 minifyEnabled true로 빌드된 경우 발생하는 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에서 hasMetricgetMetric을 지원 중단하고 contains 연산자와 get 연산자를 추가했습니다. (I7cc7c)
  • OvulationTest.Result.HIGHOvulationTest.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-alpha05androidx.health:health-services-client-proto:1.1.0-alpha05이 출시되었습니다. 버전 1.1.0-alpha05에는 이 커밋이 포함되어 있습니다.

새로운 기능

  • 이제 필요한 클래스가 제거되지 않도록 하는 ProGuard 규칙이 포함되어 있습니다. (65d0c3f)

버그 수정

  • 이제 이 라이브러리는 유형 사용인 JSpecify nullness 주석을 사용합니다. Kotlin 개발자는 올바른 사용을 적용하기 위해 다음 컴파일러 인수 -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode를 사용해야 합니다. (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-alpha04androidx.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와 함께 ExerciseEvent API가 추가되었습니다. ExerciseEvent 프리미티브를 사용하면 개발자가 지원을 쿼리하고 시계에서 무언가가 감지되면 알림을 요청할 수 있습니다. 예를 들어 GolfShotEvent를 사용하면 개발자가 사용자가 골프 샷을 칠 때 알림을 받을 수 있으며 인식된 스윙 유형도 수신할 수 있습니다.

API 변경사항

  • WHS SDK 클라이언트가 GolfShotEvent 기능을 사용하도록 설정합니다. (I76b03)

버그 수정

  • 알 수 없는 운동 이벤트 기능을 발견할 때 예외를 적극적으로 발생시키는 대신 목록에서 필터링합니다. (I06afc)

Health Services Client 버전 1.0

버전 1.1.0-alpha03

2024년 5월 14일

androidx.health:health-services-client:1.1.0-alpha03이 출시되었습니다. 버전 1.1.0-alpha03에는 이 커밋이 포함되어 있습니다.

새로운 기능

  • 샘플 데이터 유형 또는 통계 샘플 데이터 유형의 목표를 추적할 수 있는 DebouncedGoal API를 도입했습니다(데브바운싱 기능(initialDelaydurationAtThreshold) 사용 시). (I09be9)
  • 다음과 같은 고급 실행 측정항목 샘플과 통계 DataTypes를 추가했습니다. (I0b8b5):
    • Ground Contact Time
    • Vertical Oscillation
    • Vertical Ratio
    • Stride Length

API 변경사항

  • ELEVATION_GAIN_DAILY DataType를 추가했습니다. (I059d1)
  • SWIM_LAP_COUNT_TOTAL DataTypeSWIM_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 안정성을 개선하기 위한 다양한 문제가 수정되었습니다.
  • startExerciseprepareExercise와 동시에 호출하면 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)
  • 비동기 overrideBatchingModesForActiveExercise API에 더 kotlin 친화적인 suspend 함수를 도입했습니다. (I7dd15)
  • BatchingModeExerciseConfig에서 선택사항을 재정의합니다. (Id22e9)

버그 수정

  • DataTypeExerciseUpdate 사소한 수정사항 (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의 기존 비동기 ListenableFuture API에 맞는 suspend 확장 함수를 추가했습니다. (Iadea4)
  • 운동을 진행하는 중에 업데이트할 수 있게 해주는 ExerciseTypeConfig API를 추가했습니다. 골프를 치는 중에 ExerciseTypeConfig를 업데이트할 수 있는 GolfExerciseTypeConfig를 추가했습니다. (I4c539)

API 변경사항

  • 정지 함수에서 HealthServicesException이 발생합니다. (I5e509)
  • 이전 버전과의 호환성을 위해 다른 생성자를 추가합니다. (Iddeda)
  • 정지 함수에서 RuntimeException이 발생합니다. (I53bca)
  • 예외 발생의 기본 구현을 삭제했습니다. (Id947f)
  • @JvmDefaultWithCompatibility 주석을 추가합니다. (I8f206)

버그 수정

  • 명확성을 위해 kdoc에 추가합니다. (Ide285)
  • 동일한 데이터 유형이 함께 추적되는 경우에만 목표의 수동 모니터링 추적을 허용합니다. (Ibed8d)

버전 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_SKIING
    • BACKPACKING
    • CROSS_COUNTRY_SKIING
    • HORSE_RIDING
    • INLINE_SKATING
    • MOUNTAIN_BIKING
    • ORIENTEERING
    • ROLLER_SKATING
    • YACHTING
  • 새 DataType:

    • ELEVATION_LOSS
    • GOLF_SHOT_COUNT

API 변경사항

  • 데이터 모델링 방법 업데이트: 데이터 모델과 DataType, DataPoint, 기본 값이 표현되는 방식이 변경되었습니다. 최상위 수준의 영향은 이제 API가 훨씬 더 명시적이고 유형 안전성이 높다는 것입니다.
  • 위치 DataPoint는 더 이상 DoubleArray가 아니라 강타입(strongly typed) LocationData 객체로 표현됩니다.
  • 새로운 수동 리스너 API 세트로 이동했습니다.
    • 브로드캐스트가 PassiveListenerService로 대체되었습니다.
    • 기존 리스너가 단일 리스너(PassiveListenerCallback)로 대체되었습니다.
  • 애플리케이션이 더 이상 자체 매니페스트에 이를 지정할 필요가 없도록 건강 관리 서비스 매니페스트에 <queries> 태그를 추가했습니다(빌드 시스템에서 매니페스트 병합이 사용 설정된 경우).
  • 운동 종료 중/종료를 나타내는 많은 ExerciseState에서 벗어나 새로운 운동 상태(ENDINGENDED)를 추가했습니다. 이러한 상태는 이제 ExerciseEndReason과 결합되어 이전 상태 전체를 나타냅니다.
  • 일일 수동적 목표만 지원한다는 것을 더 잘 표현하도록 PassiveListenerConfig setPassiveGoals의 이름이 setDailyGoals로 변경되었습니다.
  • 이제 PassiveGoal이 항상 REPEATED이고 수동 TriggerFrequency가 삭제되었습니다.
  • 모든 LongDouble 매개변수에 @FloatRange 주석을 달았습니다.
  • ExerciseConfigswimmingPoolLengthMeters 속성을 추가했습니다. 이 속성은 풀 수영 거리 계산을 개선하기 위해 선택적으로 지정될 수 있습니다.
  • ExerciseUpdate.activeDuration이 지원 중단되었습니다. 대신 ExerciseUpdate.activeDurationCheckpoint를 사용합니다.
  • ExerciseClient에서 API flushExerciseAsync()의 이름이 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에 콜백을 등록하여 데이터 스트림을 수신하면 더 이상 필요하지 않을 때 콜백을 등록 취소할 수 있습니다.