2026/04/23

오늘의 이야기

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


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. 환영 화면 (Splash Screen...