API для подбора игроков

Руководство по использованию API системы подбора партнеров Health Connect.

Обзор

API Matchmaking позволяет вашему приложению обнаруживать другие приложения и устройства, которые могут записывать данные о состоянии здоровья, к чтению которых ваше приложение имеет доступ. Это помогает пользователям без лишних сложностей подключать свои любимые источники данных к вашему приложению.

На экране «Подбор приложений» обнаруживаются приложения и устройства, совместимые с Health Connect. Затем сопоставляются необходимые вашему приложению права на чтение с правами на запись этих приложений и устройств. На экране отображаются приложения и устройства, которые объявили, но еще не предоставили права на запись хотя бы для одного из указанных типов записей, которые вашему приложению разрешено читать.

Прежде чем начать

В этом руководстве предполагается, что вы уже настроили Health Connect в своем приложении и у вас есть доступный экземпляр HealthConnectClient .

Бета-версия

API для подбора партнеров доступен через обновление Health Connect, которое постепенно распространяется на устройства, находящиеся в эксплуатации; полная доступность ожидается к началу июня 2026 года. Чтобы протестировать функции подбора партнеров до того, как это обновление станет широко доступным, зарегистрируйте свое тестовое устройство в программе бета-тестирования Android для получения раннего доступа.

Проверьте доступность Health Connect.

Перед использованием Health Connect ваше приложение должно убедиться, что Health Connect доступен на устройстве пользователя. Health Connect может быть не установлен на устройстве пользователя или отключен.

Используйте HealthConnectClient.getSdkStatus() для проверки доступности. Если Health Connect недоступен, предложите пользователю установить или обновить Health Connect из магазина Google Play.

Проверить доступность функции

Чтобы определить, поддерживает ли устройство пользователя функцию подбора партнеров в Health Connect, проверьте наличие параметра 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 для запуска потока Health Connect, а затем запустите его с помощью 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)
}

При запуске этого интента Health Connect отображает экран, на котором пользователи могут увидеть совместимые приложения и устройства и выбрать, подключить их для обмена данными с вашим приложением.