API Matchmaking

Guide de l'API Santé Connect Matchmaking.

Présentation

L'API Matchmaking permet à votre application de découvrir d'autres applications et appareils qui peuvent écrire des données de santé que votre application est autorisée à lire. Cela permet aux utilisateurs de connecter plus facilement leurs sources de données préférées à votre application.

L'écran Matchmaking découvre les applications et appareils compatibles avec Santé Connect. Il compare ensuite les autorisations de lecture requises par votre application avec les fonctionnalités d'écriture de ces applications et appareils. L'écran affiche les applications et appareils qui ont déclaré, mais pas encore accordé, des autorisations d'écriture pour au moins l'un des types d'enregistrements spécifiés que votre application est autorisée à lire.

Avant de commencer

Dans ce guide, nous partons du principe que vous avez déjà configuré Santé Connect dans votre application et qu'une instance de HealthConnectClient est disponible.

Configuration bêta

L'API Matchmaking est disponible via une mise à jour de Santé Connect qui est progressivement déployée sur les appareils de production, avec une disponibilité à 100% prévue pour début juin 2026. Pour tester les fonctionnalités de mise en correspondance avant que cette mise à jour ne soit largement disponible, inscrivez votre appareil de test au programme bêta Android pour bénéficier d'un accès anticipé.

Vérifier la disponibilité de Santé Connect

Avant de tenter d'utiliser Santé Connect, votre application doit vérifier qu'il est disponible sur l'appareil de l'utilisateur. Il est possible que Santé Connect ne soit pas installé sur l'appareil de l'utilisateur ou qu'il soit désactivé.

Utilisez HealthConnectClient.getSdkStatus() pour vérifier la disponibilité. Si Santé Connect n'est pas disponible, invitez l'utilisateur à l'installer ou à le mettre à jour depuis le Google Play Store.

Vérifier la disponibilité des fonctionnalités

Pour déterminer si l'appareil d'un utilisateur est compatible avec la mise en correspondance sur Santé Connect, vérifiez la disponibilité de FEATURE_MATCHMAKING :

if (healthConnectClient
    .features
    .getFeatureStatus(
    HealthConnectFeatures.FEATURE_MATCHMAKING
    ) == HealthConnectFeatures.FEATURE_STATUS_AVAILABLE) {

// Feature is available
} else {
// Feature isn't available
}

Implémentation

Le flux de mise en correspondance est lancé à l'aide d'une MatchmakingRequest. Cette requête définit les types d'enregistrements que vous souhaitez que votre application collecte, et vous permet d'inclure ou d'exclure des sources de données spécifiques telles que des applications ou des appareils :

  • recordTypes : ensemble de classes Record, telles que StepsRecord::class. Si ce champ est vide, le flux prend en compte tous les types d'enregistrements pour lesquels votre application dispose d'autorisations de lecture.
  • includedDataSources : ensemble d'objets DataOrigin à inclure exclusivement.
  • excludedDataSources : ensemble d'objets DataOrigin à exclure.

Suivez ces étapes pour intégrer l'API Matchmaking à votre application.

Vérifier si la mise en correspondance est possible

Avant d'afficher un point d'entrée de mise en correspondance, utilisez checkIfMatchmakingIsPossible() pour déterminer s'il existe des applications ou des appareils correspondants pertinents pour les types d'enregistrements demandés :

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
    }
}

Nous vous recommandons de vérifier régulièrement si la mise en correspondance est possible. Les utilisateurs peuvent installer ultérieurement des applications supplémentaires ou connecter des appareils avec des types de données mutuellement compatibles. Une approche courante consiste à vérifier chaque fois que votre application démarre. Si la méthode renvoie true, affichez un point d'entrée pour lancer le flux de mise en correspondance.

Lancer le flux de mise en correspondance

Si la mise en correspondance est possible, utilisez createMatchmakingIntent() pour obtenir un Intent afin de lancer le flux Santé Connect, puis lancez-le à l'aide de 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)
}

En lançant cet intent, Santé Connect affiche un écran sur lequel les utilisateurs peuvent voir les applications et appareils compatibles, et choisir de les connecter pour partager des données avec votre application.

Écran de mise en relation affichant la liste des applications pouvant partager des données avec Santé Connect.
Figure 1. Les utilisateurs voient les applications qui peuvent écrire des données qu'ils souhaitent peut-être partager.

Écran de mise en relation affichant la liste des applications pouvant partager des données avec Santé Connect.

Écran des autorisations de Santé Connect permettant d'autoriser ou d'interdire le partage de données.
Figure 2. Les utilisateurs accordent à l'application l'autorisation de lire les données de Santé Connect.

Écran des autorisations de Santé Connect permettant d'autoriser ou d'interdire le partage de données.