반응형
Health Connect를 활용한 안드로이드 앱 개발 가이드 (예제)

Health Connect는 Android에서 다양한 건강 데이터를 통합하고 관리할 수 있도록 설계된 API입니다. 이 가이드에서는 Health Connect를 활용하여 권한을 요청하고 데이터를 읽고 쓰는 방법을 다룹니다.
📌 1. Health Connect 설정하기
의존성 추가
Health Connect를 사용하려면 build.gradle 파일에 아래와 같은 의존성을 추가해야 합니다:
dependencies {
// Health Connect 클라이언트 라이브러리
implementation "androidx.health.connect:connect-client:1.1.0-alpha05"
}
최소 SDK 설정
Health Connect는 API 27 이상에서 사용할 수 있습니다. build.gradle에서 최소 SDK를 확인하세요:
android {
compileSdk 34
defaultConfig {
minSdk 27
targetSdk 34
}
}
📌 2. 권한 요청하기
Health Connect는 데이터를 읽거나 쓰기 전에 권한을 요청해야 합니다. 이를 위해 HealthPermission API를 사용합니다.
권한 요청 코드
아래는 권한 요청을 구현하는 예제 코드입니다:
import android.content.Context
import androidx.health.connect.client.HealthConnectClient
import androidx.health.connect.client.permission.HealthPermission
import kotlinx.coroutines.runBlocking
fun requestHealthConnectPermissions(context: Context, onPermissionsGranted: () -> Unit) {
val healthConnectClient = HealthConnectClient.getOrCreate(context)
val requiredPermissions = setOf(
HealthPermission.READ_STEPS,
HealthPermission.WRITE_STEPS
)
runBlocking {
val grantedPermissions = healthConnectClient.permissionController.getGrantedPermissions()
if (grantedPermissions.containsAll(requiredPermissions)) {
onPermissionsGranted()
} else {
// 권한 요청
val requestPermissionContract = healthConnectClient.permissionController.createRequestPermissionResultContract()
context.startActivity(
requestPermissionContract.createIntent(context, requiredPermissions)
)
}
}
}
📌 3. 데이터 읽기 및 쓰기
권한을 요청한 후에는 Health Connect API를 통해 데이터를 읽고 쓸 수 있습니다.
데이터 읽기
아래는 걸음 수 데이터를 읽는 코드입니다:
val stepsRecords = healthConnectClient.readRecords(
ReadRecordsRequest(
recordType = StepsRecord::class,
timeRangeFilter = TimeRangeFilter.between(startTime, endTime)
)
)
stepsRecords.forEach { record ->
println("걸음 수: ${record.count}")
}
데이터 쓰기
걸음 수 데이터를 쓰는 예제는 다음과 같습니다:
val stepsRecord = StepsRecord(
count = 1000,
startTime = Instant.now(),
endTime = Instant.now().plusSeconds(3600)
)
healthConnectClient.insertRecords(listOf(stepsRecord))
📌 4. 권한 확인 및 사용자 경험 개선
- 권한 확인:
권한 요청 전에 이미 허용된 권한을 확인하는 것이 중요합니다. val grantedPermissions = healthConnectClient.permissionController.getGrantedPermissions() if (grantedPermissions.contains(HealthPermission.READ_STEPS)) { println("걸음 수 읽기 권한이 이미 허용되었습니다.") }- 거부된 권한 처리:
권한이 거부된 경우 사용자에게 알림을 표시하거나 재요청을 유도합니다. Toast.makeText(context, "Health Connect 권한이 필요합니다.", Toast.LENGTH_SHORT).show()
📌 5. 추가 참고 사항
- APK 설치:
Android 13 이하에서는 Health Connect APK를 Google Play에서 설치해야 합니다.
Health Connect APK - Android 14 이상:
Android 14 이상에서는 Health Connect가 기본적으로 기기에 내장되어 있습니다.
📌 6. 참고 리소스
이 가이드를 통해 Health Connect를 효과적으로 활용하여 건강 데이터를 관리하는 앱을 개발할 수 있습니다. 추가적인 질문이 있다면 댓글로 남겨주세요! 😊
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
| 앱 기획 안) 외국인 관광객을 위한 맞춤형 길찾기 앱 개발 여정: 기획부터 초안까지 (1) | 2025.05.22 |
|---|---|
| Gradle buildSrc에서 KSP(코틀린 심볼 프로세싱) 플러그인 사용하기 예제 (1) | 2025.05.16 |
| Android 헬스 커넥트 시작하기: 통합 및 권한 관리 가이드 (1) | 2025.05.08 |
| Android 최신 앱 개발: Hilt + KSP + Room + Jetpack Compose 완벽 구성 가이드 (Kotlin 2.1.20 기준) (0) | 2025.05.06 |
| 제트팩 구성에서 스크롤 효과가 있는 무너지는 앱바 생성 ... 퍼옴 (1) | 2025.04.18 |