Przewodnik po interfejsie Health Connect Matchmaking API
Przegląd
Interfejs Matchmaking API umożliwia aplikacji wykrywanie innych aplikacji i urządzeń, które mogą zapisywać dane o zdrowiu, do których odczytu Twoja aplikacja ma uprawnienia. Ułatwia to użytkownikom łączenie ulubionych źródeł danych z Twoją aplikacją.
Ekran Matchmaking wykrywa aplikacje i urządzenia zgodne z Health Connect. Następnie porównuje wymagane przez Twoją aplikację uprawnienia do odczytu z możliwościami zapisu tych aplikacji i urządzeń. Na ekranie wyświetlają się aplikacje i Urządzenia, które zadeklarowały uprawnienia do zapisu co najmniej jednego z określonych typów rekordów, do których odczytu Twoja aplikacja ma uprawnienia, ale jeszcze ich nie przyznały.
Zanim zaczniesz
W tym przewodniku zakładamy, że masz już
skonfigurowaną aplikację Health Connect
i dostępną instancję HealthConnectClient.
Konfiguracja wersji beta
Interfejs Matchmaking API jest dostępny w ramach aktualizacji Health Connect, która jest stopniowo wdrażana na urządzeniach produkcyjnych. Do początku czerwca 2026 r. powinna być dostępna na wszystkich urządzeniach. Aby przetestować funkcje dopasowywania przed udostępnieniem tej aktualizacji, zarejestruj urządzenie testowe w programie Android Beta.
Sprawdzanie dostępności Health Connect
Zanim spróbujesz użyć Health Connect, Twoja aplikacja powinna sprawdzić, czy Health Connect jest dostępna na urządzeniu użytkownika. Health Connect może nie być zainstalowana na urządzeniu użytkownika lub może być wyłączona.
Aby sprawdzić dostępność, użyj HealthConnectClient.getSdkStatus(). Jeśli Health Connect nie jest dostępna, poproś użytkownika o zainstalowanie lub zaktualizowanie Health Connect ze Sklepu Google Play.
Sprawdzanie dostępności funkcji
Aby sprawdzić, czy urządzenie użytkownika obsługuje dopasowywanie w Health Connect, sprawdź dostępność FEATURE_MATCHMAKING:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_MATCHMAKING
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
Implementacja
Proces dopasowywania jest uruchamiany za pomocą MatchmakingRequest. Ta prośba określa, które typy rekordów ma zbierać Twoja aplikacja, i umożliwia uwzględnianie lub wykluczanie określonych źródeł danych, takich jak aplikacje lub urządzenia:
recordTypes: zbiór klasRecord, takich jakStepsRecord::class. Jeśli jest pusty, proces uwzględnia wszystkie typy rekordów, do których odczytu Twoja aplikacja ma uprawnienia.includedDataSources: zbiór obiektówDataOrigin, które mają być uwzględniane.excludedDataSources: zbiór obiektówDataOrigin, które mają być wykluczane.
Aby zintegrować interfejs Matchmaking API z aplikacją, wykonaj te czynności.
Sprawdzanie, czy dopasowywanie jest możliwe
Zanim wyświetlisz punkt wejścia do dopasowywania, użyj checkIfMatchmakingIsPossible(), aby sprawdzić, czy istnieją odpowiednie aplikacje lub urządzenia pasujące do żądanych typów rekordów:
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
}
}
Zalecamy regularne sprawdzanie, czy dopasowywanie jest możliwe.
Użytkownicy mogą później zainstalować dodatkowe aplikacje lub połączyć urządzenia z wzajemnie zgodnymi typami danych. Częstym rozwiązaniem jest sprawdzanie przy każdym uruchomieniu aplikacji. Jeśli funkcja zwróci wartość true, wyświetl punkt wejścia, aby uruchomić proces dopasowywania.
Uruchamianie procesu dopasowywania
Jeśli dopasowywanie jest możliwe, użyj createMatchmakingIntent(), aby uzyskać Intent
do uruchomienia procesu Health Connect, a następnie uruchom go za pomocą interfejsu Activity Result
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)
}
Po uruchomieniu tej intencji Health Connect wyświetli ekran, na którym użytkownicy mogą zobaczyć zgodne aplikacje i urządzenia oraz wybrać, czy chcą je połączyć, aby udostępniać dane Twojej aplikacji.