Admin 04 Jun 2026 03:03

 

Cara Menghubungkan Aplikasi Kesehatan dengan Health Connect

Apa itu Health Connect?

Health Connect adalah platform standar yang dikembangkan oleh Google untuk memudahkan berbagi data kesehatan antara aplikasi aplikasi yang berwenang pada perangkat Android. Dengan Health Connect, data seperti langkah harian, detak jantung, tekanan darah, dan rekam medis dapat disimpan dalam satu tempat yang aman, sehingga setiap aplikasi dapat membaca atau menulis data tersebut dengan izin yang jelas dari pengguna.

Prasyarat

  • Perangkat Android 9 (API 28) atau lebih baru yang sudah terpasang aplikasi Health Connect dari Google Play.
  • SDK Android terbaru (rekomendasi Android Studio Flamingo atau yang lebih baru).
  • Pengetahuan dasar tentang Kotlin atau Java serta Gradle.
  • Permission yang diperlukan: android.permission.READ_EXTERNAL_STORAGE (jika diperlukan) dan izin akses data Health Connect yang diminta secara runtime.

Langkah-langkah Mengintegrasikan Aplikasi dengan Health Connect

1. Tambahkan Dependency Health Connect

Buka file build.gradle (module) dan tambahkan:

dependencies { implementation "androidx.health.connect:health-connect-client:1.0.0-alpha05" }

Pastikan repositori Google Maven sudah ada:

repositories { google() mavenCentral() }

2. Periksa Ketersediaan Health Connect di Perangkat

Gunakan HealthConnectClient.isAvailable(context) untuk memastikan aplikasi Health Connect terinstal.

val isAvailable = HealthConnectClient.isAvailable(context) if (!isAvailable) { // Arahkan pengguna mengunduh aplikasi Health Connect val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.google.android.apps.healthdata")) startActivity(intent) }

Kebanyakan perangkat modern sudah menyertakan Health Connect secara default.

3. Minta Izin Pengguna

Health Connect menggunakan Permission API khusus. Buat PermissionsRequest dengan daftar data yang ingin di read atau di write.

val permissions = setOf( HealthPermission.READ_STEPS, HealthPermission.WRITE_STEPS, HealthPermission.READ_HEART_RATE ) val client = HealthConnectClient.getOrCreate(context) val request = PermissionsRequest(permissions) client.permissionController.createPermissionsRequestIntent( request, null )?.let { pendingIntent -> startActivityForResult(pendingIntent, REQUEST_CODE_PERMISSIONS) }

Proses ini akan menampilkan UI standar Google untuk persetujuan pengguna.

4. Membaca Data

Berikut contoh membaca total langkah harian selama seminggu terakhir.

val client = HealthConnectClient.getOrCreate(context) val now = Instant.now() val start = now.minus(7, ChronoUnit.DAYS) val request = ReadRecordsRequest( recordType = StepsRecord::class, timeRangeFilter = TimeRangeFilter.between(start, now) ) lifecycleScope.launch { try { val response = client.readRecords(request) val totalSteps = response.records.sumOf { it.count } Log.d("HealthConnect", "Total langkah 7 hari: $totalSteps") } catch (e: Exception) { Log.e("HealthConnect", "Gagal membaca data", e) } }

5. Menulis Data

Misalnya menulis catatan tekanan darah.

val client = HealthConnectClient.getOrCreate(context) val record = BloodPressureRecord( systolic = 120.0, diastolic = 80.0, measurementLocation = BloodPressureRecord.MEASUREMENT_LOCATION_WRIST, time = Instant.now() ) lifecycleScope.launch { try { client.insertRecords(listOf(record)) Toast.makeText(context, "Data tekanan darah tersimpan", Toast.LENGTH_SHORT).show() } catch (e: Exception) { Log.e("HealthConnect", "Gagal menulis data", e) } }

6. Sinkronisasi dengan Server (Opsional)

Jika aplikasi Anda memerlukan sinkronisasi ke cloud, gunakan WorkManager untuk melakukan upload data secara periodik setelah berhasil membaca atau menulis.

class SyncWorker(appContext: Context, params: WorkerParameters) : CoroutineWorker(appContext, params) { override suspend fun doWork(): Result { val client = HealthConnectClient.getOrCreate(applicationContext) // Ambil data terbaru, konversi ke JSON, kirim ke API // ... return Result.success() } }

Jadwalkan dengan PeriodicWorkRequestBuilder<SyncWorker>.

Contoh Proyek Minimal

Berikut struktur file singkat untuk aplikasi StepTracker yang terhubung ke Health Connect.

app/ src/ main/ java/com/example/steptracker/MainActivity.kt res/layout/activity_main.xml AndroidManifest.xml build.gradle

MainActivity.kt

package com.example.steptracker import android.content.Intent import android.os.Bundle import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import androidx.health.connect.client.HealthConnectClient import androidx.health.connect.client.permission.Permission import androidx.health.connect.client.permission.HealthPermission import androidx.health.connect.client.request.PermissionsRequest import androidx.health.connect.client.request.ReadRecordsRequest import androidx.health.connect.client.records.StepsRecord import kotlinx.coroutines.launch class MainActivity : AppCompatActivity() { private val REQUEST_CODE_PERMISSIONS = 1001 private lateinit var healthClient: HealthConnectClient private val permissionLauncher = registerForActivityResult( ActivityResultContracts.StartActivityForResult() ) { // Periksa hasil izin // (Health Connect secara otomatis mengembalikan hasil) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) if (!HealthConnectClient.isAvailable(this)) { // Buka Play Store val intent = Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=com.google.android.apps.healthdata")) startActivity(intent) finish() return } healthClient = HealthConnectClient.getOrCreate(this) requestPermissions() } private fun requestPermissions() { val permissions = setOf( HealthPermission.READ_STEPS, HealthPermission.WRITE_STEPS ) val request = PermissionsRequest(permissions) healthClient.permissionController.createPermissionsRequestIntent(request, null)?.let { permissionLauncher.launch(it) } } private fun readSteps() { val now = Instant.now() val start = now.minus(1, ChronoUnit.DAYS) val request = ReadRecordsRequest( recordType = StepsRecord::class, timeRangeFilter = TimeRangeFilter.between(start, now) ) lifecycleScope.launch { try { val result = healthClient.readRecords(request) val total = result.records.sumOf { it.count } // Tampilkan ke UI } catch (e: Exception) { // Tangani error } } } }

Pemecahan Masalah Umum

  • Izin ditolak: Tampilkan dialog penjelasan sebelum memanggil createPermissionsRequestIntent untuk memberi konteks manfaat bagi pengguna.
  • Health Connect tidak terdeteksi: Pastikan perangkat menggunakan Android 13 atau lebih baru, atau instal aplikasi Health Connect secara manual.
  • Data tidak muncul di aplikasi lain: Periksa apakah Anda menulis data dengan client.insertRecords lalu menunggu beberapa detik; sinkronisasi internal dapat membutuhkan waktu.
  • Crash pada API level lama: Gunakan if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) untuk melindungi pemanggilan API baru.

Cara Menghubungkan Aplikasi Kesehatan Dengan Health Connect


admin
Admin
2026-06-04 03:03:04

Cara Menggunakan Health Connect Di Android


admin
Admin
2026-06-04 03:02:07

Cara Menghubungkan Earbuds Dengan Fast Pair


admin
Admin
2026-06-04 03:00:23

Cara Menghubungkan Android Ke Monitor Eksternal


admin
Admin
2026-06-04 03:00:23

Cara Mengelola Data Kesehatan Di Android


admin
Admin
2026-06-04 03:03:04