Memulai

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:

  1. 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>
    
  2. 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 {
      // ...
    }
    
  3. 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

  1. 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>
    
  2. 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:

    1. (Hanya untuk alpha09 dan yang lebih lama) Merujuk ke resource health_permissions yang disebutkan di atas; dan

    2. Mendeklarasikan 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.