Una guida all'API di matchmaking di Health Connect.
Panoramica
L'API Matchmaking consente alla tua app di scoprire altre app e altri dispositivi che possono scrivere dati sanitari che la tua app ha l'autorizzazione a leggere. In questo modo, gli utenti possono connettere le loro origini dati preferite alla tua app in modo più semplice.
La schermata Abbinamento rileva app e dispositivi compatibili con Health Connect. Poi esegue un controllo incrociato tra le autorizzazioni di lettura richieste dalla tua app e le funzionalità di scrittura di queste app e dispositivi. La schermata mostra le app e i dispositivi che hanno dichiarato, ma non ancora concesso, le autorizzazioni di scrittura per almeno uno dei tipi di record specificati che la tua app è autorizzata a leggere.
Prima di iniziare
Questa guida presuppone che tu abbia già
configurato Health Connect nella tua app
e che tu disponga di un'istanza di HealthConnectClient.
Configurazione della versione beta
L'API Matchmaking è disponibile tramite un aggiornamento di Health Connect che viene implementato gradualmente sui dispositivi di produzione, con una disponibilità del 100% prevista entro l'inizio di giugno 2026. Per testare le funzionalità di matchmaking prima che questo aggiornamento sia disponibile per tutti, registra il tuo dispositivo di test al programma beta di Android per l'accesso in anteprima.
Controlla la disponibilità di Connessione Salute
Prima di tentare di utilizzare Health Connect, la tua app deve verificare che Health Connect sia disponibile sul dispositivo dell'utente. Health Connect potrebbe non essere installato sul dispositivo dell'utente o potrebbe essere disattivato.
Usa HealthConnectClient.getSdkStatus() per verificare la
disponibilità. Se Health Connect non è disponibile, chiedi all'utente di
installare o aggiornare Health Connect dal Google Play Store.
Verificare le funzionalità disponibili
Per determinare se il dispositivo di un utente supporta il matchmaking su Connessione Salute,
controlla la disponibilità di FEATURE_MATCHMAKING:
if (healthConnectClient
.features
.getFeatureStatus(
HealthConnectFeatures.FEATURE_MATCHMAKING
) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {
// Feature is available
} else {
// Feature isn't available
}
Implementazione
Il flusso di matchmaking viene avviato utilizzando un MatchmakingRequest. Questa richiesta
definisce i tipi di record che vuoi che la tua app raccolga e ti consente di includere o
escludere origini dati specifiche come app o dispositivi:
recordTypes: un insieme di classiRecord, ad esempioStepsRecord::class. Se è vuoto, il flusso considera tutti i tipi di record per i quali la tua app dispone delle autorizzazioni di lettura.includedDataSources: un insieme di oggettiDataOriginda includere esclusivamente.excludedDataSources: un insieme di oggettiDataOriginda escludere.
Segui questi passaggi per integrare l'API Matchmaking nella tua applicazione.
Controllare se è possibile il matchmaking
Prima di mostrare un punto di accesso per il matchmaking, utilizza
checkIfMatchmakingIsPossible() per determinare se esistono app o dispositivi di corrispondenza
pertinenti per i tipi di record richiesti:
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
}
}
Ti consigliamo di verificare regolarmente se è possibile effettuare il matchmaking.
In un secondo momento, gli utenti potrebbero installare app aggiuntive o connettere dispositivi con tipi di dati reciprocamente compatibili. Un approccio comune consiste nel controllare ogni volta che l'app
viene avviata. Se restituisce true, mostra un entry point per avviare il flusso di matchmaking.
Avviare il flusso di matchmaking
Se è possibile il matchmaking, utilizza createMatchmakingIntent() per ottenere un Intent
per avviare il flusso di Health Connect, quindi avvialo utilizzando l'API Activity Result:
// 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)
}
Avviando questo intent, Health Connect mostra una schermata in cui gli utenti possono vedere app e dispositivi compatibili e scegliere di connetterli per condividere i dati con la tua app.