시작하기

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

헬스 커넥트 설치를 시작하기 전에 다음 리소스를 참고하세요.

리소스

  • 클라이언트 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의 진입점입니다.

다음은 헬스 커넥트와 연결하는 프로세스에 관한 단계별 설명입니다.

  1. 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>
    
  2. MainActivity에서 헬스 커넥트가 설치되어 있는지 확인합니다. 설치되어 있으면 HealthConnectClient 인스턴스를 가져옵니다.

    if (HealthConnectClient.isAvailable(context)) {
      // Health Connect is available and installed.
      val healthConnectClient = HealthConnectClient.getOrCreate(context)
    } else {
      // ...
    }
     ```
    
  3. 그런 다음 클라이언트 앱은 사용자에게 권한을 요청해야 합니다. 사용자는 언제든지 클라이언트 앱에 대한 액세스 권한을 부여하거나 거부할 수 있습니다.

HealthConnectClient는 기본 저장소 레이어에 대한 연결을 자동으로 관리하고 발신 요청 및 수신 응답의 모든 IPC와 직렬화를 처리합니다.

이 시점에서 CRUD 작업을 실행할 수 있습니다.