Lihat referensi berikut sebelum Anda memulai penginstalan Health Connect.
Resource
- Health Connect SDK (tersedia di Jetpack). Sertakan SDK ini dalam aplikasi Anda untuk menggunakan Health Connect API.
- Referensi API. Lihat referensi Jetpack untuk Health Connect API.
- Formulir Pernyataan Developer untuk Permintaan API. Formulir untuk meminta akses membaca dan/atau menulis jenis data.
- Contoh kode GitHub dan codelab (Opsional). Lihat repositori contoh kode GitHub dan codelab untuk membantu Anda memulai.
Ikuti langkah cepat dan sederhana ini untuk berintegrasi dengan Health Connect:
Langkah 0: Instal Health Connect
Instal Health Connect dari Android dari Google Play Store di perangkat Anda. Aplikasi ini akan menangani semua permintaan yang dikirim oleh aplikasi Anda menggunakan Health Connect SDK.
Langkah 1: Tambahkan Health Connect SDK ke aplikasi
Tambahkan dependensi pada Health Connect SDK dalam file build.gradle
modul:
dependencies {
...
implementation "androidx.health.connect:connect-client:1.0.0-alpha10"
...
}
Temukan versi terbaru di rilis
Langkah 2: Dapatkan klien Health Connect
HealthConnectClient
adalah titik entri ke Health Connect API.
Berikut adalah deskripsi tahapan proses untuk terhubung dengan Health Connect:
Untuk berinteraksi dengan Health Connect dalam aplikasi, deklarasikan nama paket Health Connect di file
AndroidManifest.xml
Anda:<!-- Check whether Health Connect is installed or not --> <queries> <package android:name="com.google.android.apps.healthdata" /> </queries>
Periksa apakah Health Connect sudah terinstal. Jika ya, Anda akan mendapatkan instance
HealthConnectClient
.if (HealthConnectClient.isProviderAvailable(context)) { // Health Connect is available and installed. val healthConnectClient = HealthConnectClient.getOrCreate(context) } else { // ... }
Selanjutnya aplikasi klien harus meminta izin dari pengguna. Pengguna bisa menyetujui atau menolak akses ke aplikasi klien kapan saja.
HealthConnectClient
akan secara otomatis mengelola koneksinya ke lapisan penyimpanan dasar dan menangani
semua IPC dan serialisasi permintaan keluar dan respons masuk.
Langkah 3: Deklarasikan izin
Deklarasikan izin untuk jenis data yang akan digunakan oleh aplikasi Anda.
Setiap jenis data yang dibaca atau ditulis oleh aplikasi Anda harus dideklarasikan menggunakan izin dalam manifes. Untuk mengetahui daftar lengkap izin dan jenis data yang sesuai, lihat Daftar jenis data.
Mulai SDK alpha10 dan yang lebih baru, Health Connect menggunakan format pernyataan izin Android standar.
<uses-permission android:name="android.permission.health.READ_HEART_RATE"/> <uses-permission android:name="android.permission.health.WRITE_HEART_RATE"/> <uses-permission android:name="android.permission.health.READ_STEPS"/> <uses-permission android:name="android.permission.health.WRITE_STEPS"/>
Jika Anda menggunakan sdk versi alpha09 atau yang lebih lama, buat resource array di
res/values/health_permissions.xml
.<resources> <array name="health_permissions"> <item>androidx.health.permission.HeartRate.READ</item> <item>androidx.health.permission.HeartRate.WRITE</item> <item>androidx.health.permission.Steps.READ</item> <item>androidx.health.permission.Steps.WRITE</item> </array> </resources>
Tambahkan metadata ke manifes untuk menjelaskan penggunaan Health Connect oleh aplikasi Anda.
Manifes harus menyediakan
<activity>
yang menampilkan kebijakan privasi kepada pengguna yang menjelaskan penggunaan dan penanganan data pengguna. Anda dapat menambahkan<activity>
baru atau mengubah yang sudah ada.Aktivitas ini harus:
(Hanya untuk alpha09 dan yang lebih lama) Merujuk ke resource
health_permissions
yang disebutkan di atas; danMendeklarasikan bahwa resource tersebut menangani intent
ACTION_SHOW_PERMISSIONS_RATIONALE
. Intent ini dikirim ke aplikasi saat pengguna mengklik link "Baca kebijakan privasi" di dialog izin Health Connect.
<application> ... <!-- Activity to show rationale of Health Connect permissions --> <activity android:name=".PermissionsRationaleActivity" android:exported="true" android:enabled="true"> <!-- (a) For alpha09 and below, reference permissions resource --> <meta-data android:name="health_permissions" android:resource="@array/health_permissions" /> <!-- (b) handle intent --> <intent-filter> <action android:name="androidx.health.ACTION_SHOW_PERMISSIONS_RATIONALE" /> </intent-filter> </activity> ... </application>
Langkah 4: Minta izin dari pengguna
Untuk menampilkan dialog izin, pertama-tama build kumpulan izin untuk jenis data yang diperlukan. Pastikan izin dalam kumpulan dideklarasikan terlebih dahulu, seperti yang dijelaskan sebelumnya.
Untuk alpha10 dan yang lebih baru:
// build a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.getReadPermission(HeartRateRecord::class),
HealthPermission.getWritePermission(HeartRateRecord::class),
HealthPermission.getReadPermission(StepsRecord::class),
HealthPermission.getWritePermission(StepsRecord::class)
)
Untuk alpha09 dan yang lebih lama:
// build a set of permissions for required data types
val PERMISSIONS =
setOf(
HealthPermission.createReadPermission(HeartRateRecord::class),
HealthPermission.createWritePermission(HeartRateRecord::class),
HealthPermission.createReadPermission(StepsRecord::class),
HealthPermission.createWritePermission(StepsRecord::class)
)
Selanjutnya, gunakan
getGrantedPermissions()
untuk mengetahui apakah aplikasi Anda sudah memiliki izin yang diperlukan. Jika belum, gunakan metode
createRequestPermissionResultContract()
untuk meminta izin.
// Create the permissions launcher.
val requestPermissionActivityContract = PermissionController.createRequestPermissionResultContract()
val requestPermissions =
registerForActivityResult(requestPermissionActivityContract) { granted ->
if (granted.containsAll(PERMISSIONS)) {
// Permissions successfully granted
} else {
// Lack of required permissions
}
}
suspend fun checkPermissionsAndRun(healthConnectClient: HealthConnectClient) {
val granted = healthConnectClient.permissionController.getGrantedPermissions(PERMISSIONS)
if (granted.containsAll(PERMISSIONS)) {
// Permissions already granted, proceed with inserting or reading data.
} else {
requestPermissions.launch(PERMISSIONS)
}
}
Jika pengguna menolak permintaan izin dua kali, aplikasi Anda
akan terkunci secara permanen dan tidak dapat lagi meminta izin.
Jika hal ini terjadi pada aplikasi Anda selama pengembangan dan pengujian, reset
jumlah permintaan izin dengan membuka aplikasi Health Connect
dan memilih izinkan semua, lalu hapus semua. Cara lain, gunakan adb
untuk
menghapus cache paket Health Connect.
Pengguna dapat memberikan atau mencabut izin menggunakan aplikasi Health Connect kapan saja. Jangan berasumsi bahwa serangkaian izin yang diberikan tidak akan berubah; aplikasi Anda harus memeriksa izin yang diberikan secara berkala dan mampu menangani skenario jika izin tiba-tiba hilang.
Data kesehatan bersifat sensitif. Jadi, untuk mempertahankan kepercayaan pengguna, sebaiknya aplikasi hanya meminta izin untuk mengakses data yang sesuai konteks. Jangan meminta data yang tidak digunakan oleh aplikasi Anda.