이 가이드는 Health Connect 버전 1.1.0-alpha12와 호환됩니다.
버전 1.1.0-alpha12로 업그레이드하는 개발자를 위해 헬스 커넥트의 메타데이터가 변경되었습니다.
라이브러리 정보
Google Maven Android Gradle 플러그인 아티팩트 ID는 업그레이드해야 하는 헬스 커넥트 라이브러리를 식별합니다.
모듈 수준 build.gradle
파일에 다음 헬스 커넥트 SDK 종속 항목을 추가합니다.
dependencies {
implementation "androidx.health.connect:connect-client:1.1.0-alpha12"
}
메타데이터 변경사항
에코시스템에 유용한 메타데이터가 추가로 존재하도록 하기 위해 버전 1.1.0-alpha12부터 헬스 커넥트 Jetpack SDK에 두 가지 메타데이터 변경사항이 도입되었습니다.
Record()
유형 객체가 인스턴스화될 때마다 메타데이터 세부정보를 지정해야 합니다.
헬스 커넥트에 데이터를 쓸 때는 다음 4가지 기록 방법 중 하나를 지정해야 합니다.
녹화 방법 | 설명 |
---|---|
RECORDING_METHOD_UNKNOWN |
녹음 방법을 확인할 수 없습니다. |
RECORDING_METHOD_MANUAL_ENTRY |
사용자가 데이터를 입력했습니다. |
RECORDING_METHOD_AUTOMATICALLY_RECORDED |
기기 또는 센서가 데이터를 기록했습니다. |
RECORDING_METHOD_ACTIVELY_RECORDED |
사용자가 기기에서 녹화 세션의 시작 또는 종료를 시작했습니다. |
예를 들면 다음과 같습니다.
StepsRecord(
startTime \= Instant.ofEpochMilli(1234L),
startZoneOffset \= null,
endTime \= Instant.ofEpochMilli(1236L),
endZoneOffset \= null,
metadata \= Metadata.manualEntry(),
Count \= 10,
)
자동으로 기록되고 적극적으로 기록된 모든 데이터의 기기 유형을 지정해야 합니다. 현재 기기 유형은 다음과 같습니다.
기기 유형 | 설명 |
---|---|
TYPE_UNKNOWN |
기기 유형을 알 수 없습니다. |
TYPE_WATCH |
기기 유형은 시계입니다. |
TYPE_PHONE |
기기 유형이 휴대전화입니다. |
TYPE_SCALE |
기기 유형은 저울입니다. |
TYPE_RING |
기기 유형은 링입니다. |
TYPE_HEAD_MOUNTED |
기기 유형은 헤드셋 기기입니다. |
TYPE_FITNESS_BAND |
기기 유형은 피트니스 밴드입니다. |
TYPE_CHEST_STRAP |
기기 유형은 가슴 벨트입니다. |
TYPE_SMART_DISPLAY |
기기 유형은 스마트 디스플레이입니다. |
예를 들면 다음과 같습니다.
private val TEST_DEVICE = Device(type = Device.TYPE_PHONE)
스니펫이 업데이트되었습니다.
새로운 메타데이터 요구사항을 준수하기 위해 새 스니펫이 필요한 모든 곳에서 헬스 커넥트 가이드가 업데이트되었습니다. 몇 가지 예는 데이터 쓰기 페이지를 참고하세요.
새 메타데이터 메서드
메타데이터를 더 이상 직접 인스턴스화할 수 없으므로 팩토리 메서드 중 하나를 사용하여 메타데이터의 새 인스턴스를 가져옵니다. 각 함수에는 세 가지 서명 변형이 있습니다.
activelyRecorded
fun activelyRecorded(device: Device): Metadata.
fun activelyRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
fun activelyRecordedWithId(id: String, device: Device): Metadata
autoRecorded
fun autoRecorded(device: Device): Metadata
fun autoRecorded(clientRecordId: String, clientRecordVersion: Long = 0, device: Device): Metadata
fun autoRecordedWithId(id: String, device: Device): Metadata
manualEntry
fun manualEntry(device: Device? = null): Metadata
fun manualEntry(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
fun manualEntryWithId(id: String, device: Device? = null): Metadata
unknownRecordingMethod
fun unknownRecordingMethod(device: Device? = null): Metadata
fun unknownRecordingMethod(clientRecordId: String, clientRecordVersion: Long = 0, device: Device? = null): Metadata
fun unknownRecordingMethodWithId(id: String, device: Device? = null): Metadata
자세한 내용은 Android 오픈소스 프로젝트를 참고하세요.
테스트 데이터
테스트 라이브러리를 사용하여 예상되는 메타데이터 값을 모의 처리합니다.
private val TEST_METADATA =
Metadata.unknownRecordingMethod(
clientRecordId = "clientId",
clientRecordVersion = 1L,
device = Device(type = Device.TYPE_UNKNOWN),
).populatedWithTestValues(id = "test")
이렇게 하면 레코드 삽입 중에 이러한 값을 자동으로 채우는 헬스 커넥트 구현의 동작을 시뮬레이션할 수 있습니다.
테스트 라이브러리의 경우 모듈 수준 build.gradle
파일에 다음 헬스 커넥트 SDK 종속 항목을 추가해야 합니다.
dependencies {
testImplementation "androidx.health.connect:connect-testing:1.0.0-alpha02"
}
라이브러리 업그레이드
실행해야 하는 주요 단계는 다음과 같습니다.
라이브러리를 1.1.0-alpha12로 업그레이드합니다.
라이브러리를 빌드할 때 새 메타데이터가 필요한 위치에 컴파일 오류가 발생하므로
Record()
유형 객체가 인스턴스화될 때마다 필요한 메타데이터 변경사항을 구현해야 합니다. 이렇게 하면 이전이 완료됩니다.