Matchmaking API

Health Connect Matchmaking API kılavuzu.

Genel Bakış

Eşleştirme API'si, uygulamanızın okuma iznine sahip olduğu sağlık verilerini yazabilen diğer uygulamaları ve cihazları keşfetmesine olanak tanır. Bu sayede kullanıcılar, en sevdikleri veri kaynaklarını uygulamanıza daha kolay bağlayabilir.

Eşleştirme ekranında, Health Connect ile uyumlu uygulamalar ve cihazlar bulunur. Ardından, uygulamanızın gerektirdiği okuma izinlerini bu uygulama ve cihazların yazma özellikleriyle çapraz referanslandırır. Ekranda, uygulamanızın okumasına izin verilen belirtilen kayıt türlerinden en az biri için yazma izni beyan edilmiş ancak henüz verilmemiş uygulamalar ve cihazlar gösterilir.

Başlamadan önce

Bu kılavuzda, uygulamanızda Health Connect'i yapılandırdığınızı ve HealthConnectClient örneğinin mevcut olduğunu varsayıyoruz.

Beta kurulumu

Eşleştirme API'si, Health Connect'e eklenen bir güncelleme aracılığıyla kullanılabilir. Bu güncelleme, üretim cihazlarında kademeli olarak kullanıma sunulmaktadır ve Haziran 2026'nın başlarında% 100 kullanılabilir olması beklenmektedir. Bu güncelleme genel kullanıma sunulmadan önce eşleştirme özelliklerini test etmek için test cihazınızı erken erişim amacıyla Android Beta Programı'na kaydedin.

Health Connect'in kullanılabilirliğini kontrol etme

Uygulamanız, Health Connect'i kullanmaya çalışmadan önce kullanıcının cihazında Health Connect'in kullanılabilir olduğunu doğrulamalıdır. Health Connect, kullanıcının cihazına yüklenmemiş veya devre dışı bırakılmış olabilir.

Kullanılabilirliği kontrol etmek için HealthConnectClient.getSdkStatus() simgesini kullanın. Health Connect kullanılamıyorsa kullanıcıdan Health Connect'i Google Play Store'dan yüklemesini veya güncellemesini isteyin.

Özelliklerin kullanıma sunulma durumunu kontrol etme

Kullanıcının cihazının Health Connect'te eşleştirme özelliğini destekleyip desteklemediğini belirlemek için FEATURE_MATCHMAKING özelliğinin kullanılabilirliğini kontrol edin:

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

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

Uygulama

Eşleştirme akışı, MatchmakingRequest kullanılarak başlatılır. Bu istek, uygulamanızın hangi kayıt türlerini toplamasını istediğinizi tanımlar ve uygulamalar veya cihazlar gibi belirli veri kaynaklarını dahil etmenize ya da hariç tutmanıza olanak tanır:

  • recordTypes: StepsRecord::class gibi Record sınıflık bir grup. Boşsa akış, uygulamanızın okuma izni verdiği tüm kayıt türlerini dikkate alır.
  • includedDataSources: Yalnızca dahil edilecek DataOrigin nesneler grubu.
  • excludedDataSources: Hariç tutulacak bir dizi DataOrigin nesne.

Matchmaking API'yi uygulamanıza entegre etmek için aşağıdaki adımları uygulayın.

Eşleştirmenin mümkün olup olmadığını kontrol etme

Bir eşleştirme giriş noktasını göstermeden önce, istenen kayıt türleri için alakalı eşleştirme uygulamaları veya cihazlar olup olmadığını belirlemek üzere checkIfMatchmakingIsPossible() kullanın:

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

Eşleştirmenin mümkün olup olmadığını düzenli olarak kontrol etmenizi öneririz. Kullanıcılar daha sonra ek uygulamalar yükleyebilir veya cihazları karşılıklı olarak uyumlu veri türleriyle bağlayabilir. Yaygın bir yaklaşım, uygulamanız her başlatıldığında kontrol etmektir. true döndürürse eşleştirme akışını başlatmak için bir giriş noktası gösterin.

Eşleştirme akışını başlatma

Eşleştirme mümkünse Health Connect akışını başlatmak için createMatchmakingIntent() kullanın, ardından Activity Result API'yi kullanarak başlatın:Intent

// 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, bu intent başlatıldığında kullanıcıların uyumlu uygulamaları ve cihazları görebileceği, ayrıca bunları bağlayarak uygulamanızla veri paylaşmayı seçebileceği bir ekran gösterir.