헬스 커넥트 설치를 시작하기 전에 다음 리소스를 참고하세요.
리소스
- 클라이언트 SDK(Jetpack에서 사용 가능). Health Connect API를 사용하려면 애플리케이션에 이 SDK를 포함하세요.
- 헬스 커넥트 APK(Play 스토어에서 사용 가능). Play 스토어에서 이 APK를 설치합니다. 헬스 커넥트 SDK를 사용하여 애플리케이션에서 전송한 모든 요청을 처리합니다.
- API 참조. Health Connect API는 Jetpack 참조를 확인하세요.
- GitHub 코드 샘플(선택사항). GitHub 코드 샘플 저장소를 참고하여 시작할 수 있습니다.
아래의 간단한 단계를 따라 헬스 커넥트와 통합하세요.
1단계:
먼저 다음을 실행해야 합니다.
모듈의 build.gradle 파일에 헬스 커넥트 SDK의 종속 항목을 추가합니다.
dependencies {
…
implementation 'androidx.health:health-connect-client:1.0.0-alpha01'
}
기기에 헬스 커넥트 APK를 설치합니다.
먼저 여기에서 헬스 커넥트 공개 베타 테스트 프로그램을 선택합니다. 공개 베타 링크는 헬스 커넥트 앱을 다운로드하는 방법도 보여줍니다. 선택하면 기기에 헬스 커넥트 APK가 설치됩니다.
2단계:
AndroidManifest.xml에서 아래 활동을 선언하여 앱의 권한 사용을 설명하는 인텐트를 처리합니다.
<application …>
<activity name=".PermissionsRationaleActivity" exported="true">
<intent-filter>
<action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE"/>
</intent-filter>
<meta-data android:name="health_permissions"
android:resource="@array/health_permissions" />
</activity>
3단계: 권한
앱에서 사용할 권한을 선언합니다. res/values/health_permissions.xml에 배열 리소스를 만듭니다. 앱에서 사용할 모든 권한에 관한 줄을 추가해야 합니다.
<resources>
<array name="health_permissions">
<item>androidx.health.permission.HeartRate.READ</item>
<item>androidx.health.permission.HeartRate.WRITE</item>
<item>androidx.health.permission.Steps.READ</item>
<item>androidx.health.permission.Steps.WRITE</item>
</array>
</resources>
애플리케이션 내에서 권한 요청 대화상자를 시작하려면 먼저 필요한 데이터 유형의 권한 집합을 빌드합니다. 집합에 있는 권한도 res/values/health_permissions.xml에 선언되어 있는지 확인합니다.
// build a set of permissions for required data types
val PERMISSIONS =
setOf(
Permission.createReadPermission(HeartRateSeries::class),
Permission.createWritePermission(HeartRateSeries::class),
Permission.createReadPermission(Steps::class),
Permission.createWritePermission(Steps::class)
)
그런 다음 권한을 요청합니다. 권한 요청을 실행하기 전에 이미 권한이 부여되었는지 확인합니다.
// Create the permissions launcher.
val requestPermissions =
registerForActivityResult(HealthDataRequestPermissions()) { granted ->
if (granted.containsAll(PERMISSIONS)) {
// Permissions successfully granted
} else {
// Lack of required permissions
}
}
fun checkPermissionsAndRun(client: HealthConnectClient) {
lifecycleScope.launch {
val granted = client.permissionController.getGrantedPermissions(PERMISSIONS)
if (granted.containsAll(PERMISSIONS)) {
// Permissions already granted
} else {
requestPermissions.launch(PERMISSIONS)
}
}
}
5단계: Health Connect API에 연결
HealthConnectClient는 Health Connect API의 진입점입니다.
다음은 헬스 커넥트와 연결하는 프로세스에 관한 단계별 설명입니다.
AndroidManifest.xml을 업데이트합니다.
// Add this to AndroidManifest.xml <!-- To check whether healthcore apk is installed or not --> <queries> <package android:name="com.google.android.apps.healthdata" /> </queries>
MainActivity에서 헬스 커넥트가 설치되어 있는지 확인합니다. 설치되어 있으면 HealthConnectClient 인스턴스를 가져옵니다.
if (HealthConnectClient.isAvailable(context)) { // Health Connect is available and installed. val healthConnectClient = HealthConnectClient.getOrCreate(context) } else { // ... } ```
그런 다음 클라이언트 앱은 사용자에게 권한을 요청해야 합니다. 사용자는 언제든지 클라이언트 앱에 대한 액세스 권한을 부여하거나 거부할 수 있습니다.
HealthConnectClient는 기본 저장소 레이어에 대한 연결을 자동으로 관리하고 발신 요청 및 수신 응답의 모든 IPC와 직렬화를 처리합니다.