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 classRecordsepertiStepsRecord::class. Jika kosong, alur akan mempertimbangkan semua jenis data yang memiliki izin baca untuk aplikasi Anda.includedDataSources: Kumpulan objekDataOriginyang akan disertakan secara eksklusif.excludedDataSources: Kumpulan objekDataOriginyang 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.