Matchmaking API

Panduan untuk Health Connect Matchmaking API.

Ringkasan

Matchmaking API memungkinkan aplikasi Anda menemukan aplikasi dan perangkat lain yang dapat menulis data kesehatan yang izin membacanya telah diberikan ke aplikasi Anda. Hal ini membantu pengguna menghubungkan sumber data favorit mereka ke aplikasi Anda dengan lebih mudah.

Layar Penemuan aplikasi dan perangkat yang kompatibel dengan Health Connect. Kemudian, izin baca yang diperlukan aplikasi Anda akan dibandingkan dengan kemampuan tulis aplikasi dan perangkat tersebut. Layar menampilkan aplikasi dan perangkat yang telah mendeklarasikan, tetapi belum memberikan, izin tulis untuk setidaknya satu jenis catatan yang ditentukan yang diizinkan untuk dibaca oleh aplikasi Anda.

Sebelum memulai

Panduan ini mengasumsikan bahwa Anda telah mengonfigurasi Health Connect di aplikasi Anda dan memiliki instance HealthConnectClient yang tersedia.

Penyiapan beta

Matchmaking API tersedia melalui update Health Connect yang di-roll out secara bertahap ke perangkat produksi, dengan ketersediaan 100% yang diharapkan pada awal Juni 2026. Untuk menguji fitur pencocokan sebelum update ini tersedia secara luas, daftarkan perangkat pengujian Anda ke program Beta Android untuk mendapatkan akses awal.

Memeriksa ketersediaan Health Connect

Sebelum mencoba menggunakan Health Connect, aplikasi Anda harus memverifikasi bahwa Health Connect tersedia di perangkat pengguna. Health Connect mungkin tidak diinstal di perangkat pengguna, atau mungkin dinonaktifkan.

Gunakan HealthConnectClient.getSdkStatus() untuk memeriksa ketersediaan. Jika Health Connect tidak tersedia, minta pengguna untuk menginstal atau mengupdate Health Connect dari Google Play Store.

Periksa ketersediaan fitur

Untuk menentukan apakah perangkat pengguna mendukung pencocokan di Health Connect, periksa ketersediaan FEATURE_MATCHMAKING:

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

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

Penerapan

Alur pencarian lawan diluncurkan menggunakan MatchmakingRequest. Permintaan ini menentukan jenis rekaman yang ingin dikumpulkan aplikasi Anda, dan memungkinkan Anda menyertakan atau mengecualikan sumber data tertentu seperti aplikasi atau perangkat:

  • recordTypes: Kumpulan class Record seperti StepsRecord::class. Jika kosong, alur akan mempertimbangkan semua jenis rekaman yang izin bacanya dimiliki oleh aplikasi Anda.
  • includedDataSources: Kumpulan objek DataOrigin yang akan disertakan secara eksklusif.
  • excludedDataSources: Kumpulan objek DataOrigin yang akan dikecualikan.

Ikuti langkah-langkah berikut untuk mengintegrasikan Matchmaking API ke dalam aplikasi Anda.

Memeriksa apakah matchmaking memungkinkan

Sebelum menampilkan titik entri pencocokan, gunakan checkIfMatchmakingIsPossible() untuk menentukan apakah ada aplikasi atau perangkat yang cocok dan relevan untuk jenis rekaman yang diminta:

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

Sebaiknya periksa apakah matchmaking dapat dilakukan secara berkelanjutan. Pengguna mungkin menginstal aplikasi tambahan atau menghubungkan perangkat dengan jenis data yang kompatibel satu sama lain. Pendekatan umum adalah memeriksa setiap kali aplikasi Anda dimulai. Jika menampilkan true, tampilkan titik entri untuk meluncurkan alur matchmaking.

Mulai alur Pemadanan

Jika pencocokan memungkinkan, gunakan createMatchmakingIntent() untuk mendapatkan Intent guna meluncurkan alur Health Connect, lalu luncurkan menggunakan Activity Result 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)
}

Dengan meluncurkan intent ini, Health Connect akan menampilkan layar tempat pengguna dapat melihat aplikasi dan perangkat yang kompatibel, serta memilih untuk menghubungkannya guna membagikan data ke aplikasi Anda.