헬스 커넥트 매치메이킹 API 가이드입니다.
개요
매치메이킹 API를 사용하면 앱이 읽을 권한이 있는 건강 데이터를 쓸 수 있는 다른 앱과 기기를 앱에서 검색할 수 있습니다. 이렇게 하면 사용자가 즐겨 사용하는 데이터 소스를 앱에 더 쉽게 연결할 수 있습니다.
매치메이킹 화면은 헬스 커넥트와 호환되는 앱과 기기를 검색합니다. 그런 다음 앱의 필수 읽기 권한을 이러한 앱과 기기의 쓰기 기능과 상호 참조합니다. 이 화면에는 앱에서 읽을 수 있는 지정된 레코드 유형 중 하나 이상에 대해 쓰기 권한을 선언했지만 아직 부여하지 않은 앱과 기기가 표시됩니다.
시작하기 전에
이 가이드에서는 앱에서 헬스 커넥트를 이미
구성했고
인스턴스를 사용할 수 있다고 가정합니다.HealthConnectClient
베타 설정
매치메이킹 API는 2026년 6월 초까지 100% 사용 가능할 것으로 예상되며 프로덕션 기기에 점진적으로 출시되는 헬스 커넥트 업데이트를 통해 사용할 수 있습니다. 이 업데이트가 널리 제공되기 전에 매치메이킹 기능을 테스트하려면 Android 베타 프로그램에 테스트 기기를 등록하여 미리 사용해 보세요.
헬스 커넥트 사용 가능 여부 확인
헬스 커넥트를 사용하기 전에 앱에서 사용자 기기에서 헬스 커넥트를 사용할 수 있는지 확인해야 합니다. 헬스 커넥트가 사용자 기기에 설치되어 있지 않거나 사용 중지되어 있을 수 있습니다.
HealthConnectClient.getSdkStatus()를 사용하여
사용 가능 여부를 확인합니다. 헬스 커넥트를 사용할 수 없는 경우 사용자에게 Google Play 스토어에서 헬스 커넥트를 설치하거나 업데이트하라는 메시지를 표시합니다.
기능 이용 가능 여부 확인
사용자 기기에서 헬스 커넥트의 매치메이킹을 지원하는지 확인하려면 FEATURE_MATCHMAKING의 사용 가능 여부를 확인하세요.
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_MATCHMAKING
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
구현
매치메이킹 흐름은 MatchmakingRequest를 사용하여 시작됩니다. 이 요청은 앱에서 수집할 레코드 유형을 정의하고 앱 또는 기기와 같은 특정 데이터 소스를 포함하거나 제외할 수 있도록 합니다.
recordTypes:Record클래스 집합(예:StepsRecord::class)입니다. 비어 있으면 흐름에서 앱에 읽기 권한이 있는 모든 레코드 유형을 고려합니다.includedDataSources: 독점적으로 포함할DataOrigin객체 집합입니다.excludedDataSources: 제외할DataOrigin객체 집합입니다.
다음 단계에 따라 매치메이킹 API를 애플리케이션에 통합하세요.
매치메이킹이 가능한지 확인
매치메이킹 진입점을 표시하기 전에 checkIfMatchmakingIsPossible()을 사용하여 요청된 레코드 유형과 관련된 일치하는 앱 또는 기기가 있는지 확인합니다.
suspend fun checkMatchmakingPossible(healthConnectClient: HealthConnectClient) {
val request = MatchmakingRequest(recordTypes = setOf(StepsRecord::class))
val response = healthConnectClient.checkIfMatchmakingIsPossible(request)
if (response.isMatchmakingPossible) {
// Relevant apps or devices found. Show entry point to launch flow.
} else {
// Handle case where no new data sources are available
}
}
매치메이킹이 가능한지 지속적으로 확인하는 것이 좋습니다.
사용자는 나중에 상호 호환되는 데이터 유형이 있는 앱을 추가로 설치하거나 기기를 연결할 수 있습니다. 일반적인 방법은 앱이 시작될 때마다 확인하는 것입니다. true를 반환하면 매치메이킹 흐름을 시작하는 진입점을 표시합니다.
매치메이킹 흐름 시작
매치메이킹이 가능한 경우 createMatchmakingIntent()를 사용하여 헬스 커넥트 흐름을 시작하는 Intent
를 가져온 다음 활동 결과
API를 사용하여 시작합니다.
// Create the matchmaking launcher
val matchmakingLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == Activity.RESULT_OK) {
// Matchmaking finished successfully.
// User successfully granted at least one permission.
} else {
// User canceled flow or didn't grant permissions.
}
}
fun launchMatchmaking(healthConnectClient: HealthConnectClient) {
val request = MatchmakingRequest(recordTypes = setOf(StepsRecord::class))
val intent = healthConnectClient.createMatchmakingIntent(request)
matchmakingLauncher.launch(intent)
}
이 인텐트를 시작하면 헬스 커넥트에서 사용자가 호환되는 앱과 기기를 확인하고 앱과 데이터를 공유하도록 연결할 수 있는 화면을 표시합니다.