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 capacité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 de la version 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. Elle devrait être disponible à 100 % d'ici début juin 2026. Pour tester les fonctionnalités de matchmaking 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 que Santé Connect 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 le matchmaking 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 matchmaking 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 le matchmaking est possible

Avant d'afficher un point d'entrée de matchmaking, 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 le matchmaking 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 à effectuer une vérification chaque fois que votre application démarre. Si la méthode renvoie true, affichez un point d'entrée pour lancer le flux de matchmaking.

Lancer le flux de matchmaking

Si le matchmaking 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.