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 eden ancak henüz verilmeyen uygulamalar ve cihazlar gösterilir.

Başlamadan önce

Bu kılavuzda, uygulamanızda Health Connect'i yapılandırdığınız ve HealthConnectClient örneğinizin olduğu varsayılır.

Beta kurulumu

Eşleştirme API'si, Health Connect'te yapılan ve üretim cihazlarında kademeli olarak kullanıma sunulan bir güncelleme aracılığıyla kullanılabilir. API'nin 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

Bir 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ıf. 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 nesneleri grubu.
  • excludedDataSources: Hariç tutulacak DataOrigin nesneleri kümesi.

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şen 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 sürekli olarak mümkün olup olmadığını 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)
}

Bu amaç başlatıldığında Health Connect, kullanıcıların uyumlu uygulamaları ve cihazları görebileceği, bunları bağlayarak uygulamanızla veri paylaşmayı seçebileceği bir ekran gösterir.

Health Connect ile veri paylaşabilen uygulamaların listesini gösteren eşleştirme ekranı.
Şekil 1. Kullanıcılara, paylaşmak isteyebilecekleri verileri yazabilen uygulamalar gösterilir.

Health Connect ile veri paylaşabilen uygulamaların listesini gösteren eşleştirme ekranı.

Veri paylaşımına izin vermek veya veri paylaşımını engellemek için Health Connect izinleri ekranı.
Şekil 2. Kullanıcılar, uygulamanın Health Connect'teki verileri okuması için izin verir.

Veri paylaşımına izin vermek veya veri paylaşımını engellemek için Health Connect izinleri ekranı.