Matchmaking API

Panduan untuk Matchmaking API Health Connect.

Ringkasan

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

Layar Matchmaking menemukan aplikasi dan perangkat yang kompatibel dengan Health Connect. Kemudian, layar ini melakukan referensi silang izin baca yang diperlukan aplikasi Anda dengan kemampuan tulis aplikasi dan perangkat tersebut. Layar ini menampilkan aplikasi dan perangkat yang telah mendeklarasikan, tetapi belum memberikan, izin tulis untuk setidaknya satu jenis data yang ditentukan yang diizinkan untuk dibaca oleh aplikasi Anda.

Sebelum memulai

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

Penyiapan versi beta

Matchmaking API tersedia melalui update ke Health Connect yang secara bertahap diluncurkan ke perangkat produksi, dengan ketersediaan 100% yang diharapkan pada awal Juni 2026. Untuk menguji fitur matchmaking sebelum update ini tersedia secara luas, daftarkan perangkat pengujian Anda ke program Android Beta 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 dapat dinonaktifkan.

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

Memeriksa ketersediaan fitur

Untuk menentukan apakah perangkat pengguna mendukung matchmaking 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 matchmaking diluncurkan menggunakan MatchmakingRequest. Permintaan ini menentukan jenis data yang ingin dikumpulkan oleh 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 data yang memiliki izin baca untuk 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 matchmaking, gunakan checkIfMatchmakingIsPossible() untuk menentukan apakah ada aplikasi atau perangkat yang cocok dan relevan untuk jenis data 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 memungkinkan 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.

Meluncurkan alur Matchmaking

Jika matchmaking 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 berbagi data dengan aplikasi Anda.

Layar pencocokan menampilkan daftar aplikasi yang dapat membagikan data ke Health Connect.
Gambar 1. Pengguna akan melihat aplikasi yang dapat menulis data yang mungkin ingin mereka bagikan.

Layar pencocokan menampilkan daftar aplikasi yang dapat membagikan data ke Health Connect.

Layar izin Health Connect untuk mengizinkan atau tidak mengizinkan berbagi data.
Gambar 2. Pengguna memberikan izin agar aplikasi dapat membaca data dari Health Connect.

Layar izin Health Connect untuk mengizinkan atau tidak mengizinkan berbagi data.