Merencanakan dan meninjau jenis data Health Connect

Health Connect menyimpan dan menyusun data kesehatan dan kebugaran. Laporan ini juga memperhitungkan cara pengukuran berbagai jenis data. Jenis data ini mencakup pengukuran detak jantung yang dilakukan langsung, jumlah langkah yang diambil dari waktu ke waktu, dan data tidur yang diambil dalam sesi.

Penting untuk memahami terlebih dahulu jenis data dan izin yang ditawarkan Health Connect agar Anda dapat merencanakan persyaratan aplikasi. Dengan demikian, Anda harus meninjau jenis data sebelum dapat menyelesaikan persyaratan.

Kategori jenis data

Health Connect mendukung jenis data yang digunakan di sebagian besar aplikasi kesehatan dan kebugaran untuk memberikan variasi sebanyak mungkin. Health Connect bertujuan untuk menawarkan tampilan dan penyimpanan data kesehatan dan kebugaran yang komprehensif. Jenis data ini termasuk dalam kategori berikut:

  • Aktivitas: Kategori ini merekam aktivitas yang dilakukan pengguna. Kategori ini dapat mencakup aktivitas kesehatan dan kebugaran seperti berlari dan berenang.
  • Pengukuran Tubuh: Kategori ini merekam data umum terkait tubuh, seperti bobot pengguna dan laju metabolisme basalnya.
  • Pencatatan Siklus: Kategori ini merekam siklus menstruasi dan titik data terkait, seperti hasil biner uji ovulasi.
  • Gizi: Kategori ini merekam jenis data hidrasi dan gizi. Data pertama menunjukkan seberapa banyak air yang dikonsumsi pengguna dalam satu kali minum. Data yang kedua mencakup kolom opsional seperti kalori, gula, dan magnesium.
  • Tidur: Kategori ini merekam data interval yang terkait dengan durasi dan jenis tidur pengguna.
  • Tanda Vital: Kategori ini merekam informasi penting tentang kesehatan umum pengguna. Informasi ini mencakup data seperti suhu tubuh, glukosa darah, tekanan darah, dan saturasi oksigen darah.

Format jenis data

Jenis data di Health Connect disimpan dalam objek yang merupakan subclass dari Record.

Untuk setiap jenis data, ada kolom terkait yang bersifat umum seperti time dan zoneOffset, atau spesifik seperti title, count, dan percentage. Beberapa kolom menggunakan jenis sederhana—seperti long, double, atau string—sedangkan kolom lainnya menggunakan jenis kompleks seperti enumerasi dan class seperti Instant dan ZoneOffset. Atribut kolom ini dapat bersifat wajib atau opsional. Beberapa atribut hanya dapat dibaca, dan beberapa atribut dibatasi ke rentang nilai tertentu.

Untuk mengetahui daftar lengkap jenis data yang tersedia dan kolomnya, lihat class di Jetpack.

Atribut data tambahan

Data di Health Connect API juga mencakup atribut metadata yang dijelaskan dalam daftar berikut:

  • ID Health Connect: Setiap titik data ditetapkan dengan ID unik (UID) saat pembuatan. Hal ini berguna untuk operasi baca dan tulis standar. Lihat ID Health Connect untuk mengetahui detail selengkapnya.
  • Waktu terakhir diubah: Tindakan ini menandai stempel waktu saat instance terakhir data memiliki update. ID ini otomatis dibuat pada saat pembuatan pertama data atau pada setiap update.
  • Asal data: Health Connect menyimpan informasi tentang aplikasi asal data. Kode ini berisi nama paket asal tersebut, yang ditambahkan secara otomatis saat pembuatan.
  • Perangkat: Health Connect menyimpan informasi tentang perangkat asal data. Kode ini berisi produsen dan model perangkat tersebut, yang Anda berikan nilainya secara manual.
  • Client ID: Health Connect menyediakan Client ID sehingga aplikasi klien dapat merujuk ke data menggunakan ID-nya sendiri, yang membantu penyelesaian konflik dan mempermudah sinkronisasi. Ini disediakan ke data secara manual.
  • Versi data klien: Bersama dengan Client ID, Health Connect memberikan versi untuk membantu melacak perubahan selama sinkronisasi data. Ini disediakan ke data secara manual.
  • Metode perekaman: Health Connect memungkinkan Anda memahami cara data direkam. Metode ini mencakup aplikasi yang merekam data secara pasif (otomatis), dan pengguna yang merekam data secara aktif atau manual.

ID Health Connect

Health Connect menetapkan ID unik (UID) ke objek data yang baru disisipkan, yang mengidentifikasi objek data dan membedakannya dari yang lain. ID Health Connect berguna dalam permintaan baca atau tulis. ID Health Connect tidak sama dengan Client ID. Aplikasi klien menetapkan Client ID, sedangkan Health Connect secara eksklusif menetapkan ID Health Connect.

Perhatikan catatan berikut saat menggunakan ID Health Connect:

  • Sesi memiliki satu ID Health Connect, tetapi data dalam sesi memiliki ID Health Connect-nya sendiri.
  • ID Health Connect tidak terikat atau terkait dengan stempel waktu.
  • Beberapa kasus penggunaan mungkin memerlukan penyimpanan ID Health Connect tertentu selama alur kerja. Misalnya, ID tertentu diperlukan untuk mengambil dan menampilkan kepada pengguna entri data yang baru saja mereka catat.

Waktu di Health Connect

Semua data yang ditulis ke Health Connect harus menentukan informasi offset zona waktu. Menentukan offset zona waktu memungkinkan aplikasi membaca data untuk mewakilinya dalam waktu sipil. Waktu sipil adalah waktu yang bersifat lokal dan relevan bagi pengguna, tetapi tidak harus dalam Waktu Universal Terkoordinasi (Coordinated Universal Time/UTC).

Dalam kasus yang jarang terjadi, offset zona waktu mungkin tidak tersedia. Jika hal ini terjadi di Android 14 (Level API 34), Health Connect akan menetapkan offset zona berdasarkan zona waktu default sistem perangkat. Di Android 13 dan versi yang lebih lama (Level API 33 dan yang lebih lama), Anda dapat menulis ke Health Connect tanpa menentukan informasi offset zona waktu, yang harus dihindari jika memungkinkan.

Setelan waktu dan zona

Menentukan informasi offset zona waktu saat menulis data memberikan informasi zona waktu saat membaca data di Health Connect. Namun, tindakan ini dapat gagal dalam situasi tertentu, seperti saat offset zona waktu tidak diberikan. Aplikasi Anda harus siap menangani kedua jenis data, dengan cara yang sesuai dengan situasi tertentu.

Izin

Sebelum meminta izin apa pun, aplikasi Anda harus mendeklarasikannya dalam manifes terlebih dahulu. Lihat tabel berikut untuk pemetaan lengkap jenis data dan izinnya.

Untuk 1.0.0-alpha10 dan yang lebih tinggi

Referensi izin Pernyataan izin baca
Pembacaan latar belakang android.permission.health.READ_HEALTH_DATA_IN_BACKGROUND
Pembacaan histori android.permission.health.READ_HEALTH_DATA_HISTORY

Jenis class kumpulan data Membaca dan menulis pernyataan izin
ActiveCaloriesBurned android.permission.health.READ_ACTIVE_CALORIES_BURNED
android.permission.health.WRITE_ACTIVE_CALORIES_BURNED
BasalMetabolicRate android.permission.health.READ_BASAL_METABOLIC_RATE
android.permission.health.WRITE_BASAL_METABOLIC_RATE
BloodPressure android.permission.health.READ_BLOOD_PRESSURE
android.permission.health.WRITE_BLOOD_PRESSURE
CyclingPedalingCadence android.permission.health.READ_CYCLING_PEDALING_CADENCE
android.permission.health.WRITE_CYCLING_PEDALING_CADENCE
Distance android.permission.health.READ_DISTANCE
android.permission.health.WRITE_DISTANCE
ElevationGained android.permission.health.READ_ELEVATION_GAINED
android.permission.health.WRITE_ELEVATION_GAINED
ExerciseSession android.permission.health.READ_EXERCISE_ROUTE
android.permission.health.READ_EXERCISE_SESSION
android.permission.health.WRITE_EXERCISE_ROUTE
android.permission.health.WRITE_EXERCISE_SESSION
FloorsClimbed android.permission.health.READ_FLOORS_CLIMBED
android.permission.health.WRITE_FLOORS_CLIMBED
HeartRate android.permission.health.READ_HEART_RATE
android.permission.health.WRITE_HEART_RATE
Height android.permission.health.READ_HEIGHT
android.permission.health.WRITE_HEIGHT
Hydration android.permission.health.READ_HYDRATION
android.permission.health.WRITE_HYDRATION
MindfulnessSession android.permission.health.READ_MINDFULNESS
android.permission.health.WRITE_MINDFULNESS
Nutrition android.permission.health.READ_NUTRITION
android.permission.health.WRITE_NUTRITION
Daya android.permission.health.READ_POWER
android.permission.health.WRITE_POWER
RestingHeartRate android.permission.health.READ_RESTING_HEART_RATE
android.permission.health.WRITE_RESTING_HEART_RATE
SkinTemperature android.permission.health.READ_SKIN_TEMPERATURE
android.permission.health.WRITE_SKIN_TEMPERATURE
SleepSession android.permission.health.READ_SLEEP_SESSION
android.permission.health.WRITE_SLEEP_SESSION
Speed android.permission.health.READ_SPEED
android.permission.health.WRITE_SPEED
Langkah android.permission.health.READ_STEPS
android.permission.health.WRITE_STEPS
StepsCadence android.permission.health.READ_STEPS_CADENCE
android.permission.health.WRITE_STEPS_CADENCE
TotalCaloriesBurned android.permission.health.READ_TOTAL_CALORIES_BURNED
android.permission.health.WRITE_TOTAL_CALORIES_BURNED
Berat android.permission.health.READ_WEIGHT
android.permission.health.WRITE_WEIGHT
WheelchairPushes android.permission.health.READ_WHEELCHAIR_PUSHES
android.permission.health.WRITE_WHEELCHAIR_PUSHES

Untuk 1.0.0-alpha09 dan yang lebih lama

Jenis class kumpulan data Membaca dan menulis pernyataan izin
ActiveCaloriesBurned androidx.health.permission.ActiveCaloriesBurned.READ
androidx.health.permission.ActiveCaloriesBurned.WRITE
BasalMetabolicRate androidx.health.permission.BasalMetabolicRate.READ
androidx.health.permission.BasalMetabolicRate.WRITE
BloodPressure androidx.health.permission.BloodPressure.READ
androidx.health.permission.BloodPressure.WRITE
CyclingPedalingCadence androidx.health.permission.CyclingPedalingCadence.READ
androidx.health.permission.CyclingPedalingCadence.WRITE
Distance androidx.health.permission.Distance.READ
androidx.health.permission.Distance.WRITE
ElevationGained androidx.health.permission.ElevationGained.READ
androidx.health.permission.ElevationGained.WRITE
ExerciseSession androidx.health.permission.ExerciseSession.READ
androidx.health.permission.ExerciseSession.WRITE
FloorsClimbed androidx.health.permission.FloorsClimbed.READ
androidx.health.permission.FloorsClimbed.WRITE
HeartRate androidx.health.permission.HeartRate.READ
androidx.health.permission.HeartRate.WRITE
Height androidx.health.permission.Height.READ
androidx.health.permission.Height.WRITE
Hydration androidx.health.permission.Hydration.READ
androidx.health.permission.Hydration.WRITE
Nutrition androidx.health.permission.Nutrition.READ
androidx.health.permission.Nutrition.WRITE
Daya androidx.health.permission.Power.READ
androidx.health.permission.Power.WRITE
RestingHeartRate androidx.health.permission.RestingHeartRate.READ
androidx.health.permission.RestingHeartRate.WRITE
SleepSession androidx.health.permission.SleepSession.READ
androidx.health.permission.SleepSession.WRITE
Speed androidx.health.permission.Speed.READ
androidx.health.permission.Speed.WRITE
Langkah androidx.health.permission.Steps.READ
androidx.health.permission.Steps.WRITE
StepsCadence androidx.health.permission.StepsCadence.READ
androidx.health.permission.StepsCadence.WRITE
TotalCaloriesBurned androidx.health.permission.TotalCaloriesBurned.READ
androidx.health.permission.TotalCaloriesBurned.WRITE
Berat androidx.health.permission.Weight.READ
androidx.health.permission.Weight.WRITE
WheelchairPushes androidx.health.permission.WheelchairPushes.READ
androidx.health.permission.WheelchairPushes.WRITE

Meninjau jenis data dan izin Anda

Setelah merencanakan jenis data dan izin, Anda dapat menerapkannya selama pengembangan.

Saat meninjau aplikasi sebelum menguploadnya ke Play Store, periksa kembali daftar jenis data dan izin yang diperlukan aplikasi Anda. Hal ini memungkinkan Anda mendeklarasikan penggunaan data aplikasi secara akurat.

Saat Anda bersiap untuk memublikasikan aplikasi ke Play Store, deklarasikan akses ke jenis data Health Connect yang digunakan aplikasi Anda. Jika tidak, pengguna mungkin akan melihat pesan error yang menyatakan bahwa aplikasi Anda tidak dapat mengakses jenis data Health Connect karena memerlukan izin khusus.