Wear Health Services API (WHS) adalah komponen wajib untuk semua perangkat yang menjalankan Wear OS 3 dan yang lebih baru karena menyediakan platform integrasi yang konsisten untuk developer aplikasi kesehatan dan kebugaran. Bangun aplikasi Anda agar mudah beradaptasi dengan banyak perangkat dan kemampuan yang berbeda untuk mempertahankan kompatibilitas di seluruh perangkat serta menghindari masalah pengalaman pengguna. Untuk itu, deklarasikan dependensi hanya untuk klien yang digunakan aplikasi Anda. Selain itu, izinkan aplikasi Anda untuk menampilkan atau menghapus metrik lanjutan opsional berdasarkan ketersediaannya.
Sensor yang berbeda menghasilkan data dengan frekuensi berbeda yang bervariasi per perangkat, berdasarkan hardware dan platform sensor dasar. Misalnya, perangkat mungkin menampilkan detak jantung pada satu stempel waktu dan lokasi pada stempel waktu lainnya. Buat aplikasi yang dapat menerima aliran data independen pada stempel waktu yang berbeda atau pada stempel waktu yang tumpang-tindih.
Panduan ini menjelaskan perilaku dan jenis data yang diperkirakan dan didukung oleh berbagai klien dalam Fitur Kesehatan Wear.
Klien olahraga
Bagian berikut ini menjelaskan perilaku dan jenis data yang diperkirakan dari
ExerciseClient
.
Perilaku yang diharapkan
Untuk ExerciseClient
, beberapa jenis olahraga bergantung pada ketersediaan
jenis data tertentu. Misalnya, olahraga kursi roda hanya tersedia jika
dorongan (push) kursi roda didukung. Aktifkan dan nonaktifkan opsi ini berdasarkan ketersediaannya di perangkat tertentu.
Sebagian besar jenis data olahraga diambil sampelnya dan dikirim pada interval satu detik, dengan beberapa pengecualian:
- Dalam beberapa situasi, beberapa jenis data olahraga diupdate lebih dari sekali per detik. Misalnya, saat pengguna berjalan, jumlah langkah akan diperbarui lebih dari sekali per detik.
- Untuk beberapa jenis data, update hanya dikirim jika nilai saat ini berbeda dari nilai sebelumnya.
Pengiriman data dapat berupa streaming atau batch. Data di-streaming saat pemroses aplikasi aktif, yaitu biasanya saat layar aktif dan interaktif. Setelah layar nonaktif atau dalam mode standby (aktif, tetapi tidak interaktif), data akan dikelompokkan untuk menghemat daya. Data yang dikelompokkan dikirimkan ke aplikasi saat prosesor aplikasi diaktifkan lagi, baik karena smartwatch keluar dari mode standby maupun saat buffer untuk pengelompokan penuh, yang bervariasi menurut perangkat. Frekuensi sampling tetap sama saat perangkat berada dalam mode standby sehingga batch yang dikirim masih memiliki titik data frekuensi tinggi.
Jenis Data hanya berasal dari data yang dihasilkan oleh sensor pada smartwatch. Misalnya, data lokasi sepenuhnya berasal dari smartwatch dan bukan dari ponsel.
Jenis data
API ExerciseClient
memungkinkan Anda memulai, menjeda, melanjutkan, dan menghentikan olahraga dari
jenis yang berbeda. Untuk setiap olahraga, WHS menentukan sekumpulan jenis data yang
tersedia untuk jenis olahraga tersebut. Tindakan ini akan menghemat daya dan menyederhanakan
logika aplikasi Anda karena sensor yang tidak diperlukan untuk olahraga tertentu tidak
diaktifkan. Misalnya, saat memulai lari, data lokasi hanya disediakan dan
dilacak untuk lari outdoor. Saat memulai olahraga bersepeda, langkah tidak
disediakan atau dilacak. Bagian berikut memberikan deskripsi jenis data
yang didukung di ExerciseClient
.
Jenis data olahraga yang dijamin
Jenis data olahraga berikut tersedia di semua perangkat.
- Jenis data sampel memiliki Jenis Data _STATS yang sesuai, dan menampilkan nilai minimum, maksimum, dan rata-rata dari olahraga. Misalnya, statistik PACE dapat ditarik dengan Jenis Data PACE_STATS.
- Jenis data Interval memiliki Jenis Data _TOTAL yang sesuai, dan menampilkan nilai kumulatif dari olahraga. Misalnya, statistik DISTANCE dapat diambil dengan Jenis Data DISTANCE_TOTAL.
Metrik | Data yang diharapkan | Catatan tentang perilaku yang diperkirakan |
HEART_RATE_BPM | Detak per menit [DataType: Ganda] | Semua perangkat mengambil sampel detak jantung sekali per detik selama olahraga. Beberapa perangkat melaporkan nilai BPM setiap detik. Beberapa perangkat hanya melaporkan BPM jika telah mengalami perubahan dari nilai sebelumnya. Jangan berharap untuk menerima nilai BPM pada setiap interval satu detik di semua perangkat. |
LOCATION | Lintang dan bujur [DataType: Ganda] | Data lokasi hanya didasarkan pada GPS smartwatch. Jangan mengharapkan data lokasi berasal dari Penyedia Lokasi Fusi atau layanan Android lainnya). Setiap titik data juga mencakup nilai akurasi (dikenal juga sebagai error posisi horizontal) dan ketersediaan. |
LANGKAH-LANGKAH | [Jenis data: Panjang] | Jumlah langkah adalah total berlari selama durasi olahraga, tidak termasuk waktu saat dijeda |
DISTANCE | Meter [Jenis data: Ganda] | Dihitung dari lokasi berbasis GPS jika tersedia, dan dari langkah sebaliknya. Total mengacu pada total selama durasi olahraga, tidak termasuk waktu saat olahraga dijeda. |
SPEED | [meter/detik] [Jenis data: Ganda] | Menampilkan nilai minimum, maksimum, dan rata-rata. Durasi ini mencakup durasi olahraga, tidak termasuk waktu saat dijeda. |
PACE | [detik/meter] [Jenis data: Ganda] | Nilai defaultnya adalah 0 jika kecepatannya 0. Rata-rata mencakup durasi olahraga, tidak termasuk waktu saat dijeda. |
ELEVATION_GAIN | Meter. [Jenis data: Ganda] | Perubahan positif pada elevasi. Total yang dilaporkan berdasarkan durasi olahraga, tidak termasuk waktu saat olahraga dijeda. |
TOTAL_CALORIES | kCal [Jenis data: Ganda] | Kalori aktif yang terbakar ditambahkan ke Laju Metabolisme Basal. Kalori yang dihasilkan di sini memperhitungkan tinggi, berat, usia, dan gender pengguna seperti yang ditentukan dalam setelan sistem. Kalori tidak memperhitungkan data profil pengguna yang dikumpulkan di aplikasi Anda. Total yang dilaporkan berdasar durasi olahraga, tidak termasuk waktu saat dijeda. |
Jenis data olahraga opsional
Daftar jenis data berikut ini hanya tersedia di perangkat tertentu. Baca referensi Jetpack untuk mengetahui daftar lengkap DataTypes. Jika DataType tidak ada dalam daftar “wajib/dijamin” sebelumnya, maka sifatnya opsional.
Lihat contoh jenis data opsional berikut. Daftar berikut ini tidaklah lengkap:
Metrik | Data yang diharapkan | Catatan tentang perilaku yang diperkirakan |
ABSOLUTE_ELEVATION | [Jenis data: Ganda] | |
ELEVATION_LOSS | Meter [Jenis data: Ganda] | Perubahan negatif pada elevasi. Nilainya positif. Misalnya, penurunan elevasi 1 m ditampilkan sebagai 1, bukan -1. |
STEPS_PER_MINUTE | [Jenis data: Panjang] | |
WHEELCHAIR_PUSHES | [Jenis data: Panjang] | Jumlah dorongan kursi roda untuk digunakan dalam olahraga berbasis kursi roda. |
REP_COUNT | [Jenis data: Panjang] | |
SWIM_STROKE_COUNT | [Jenis data: Panjang] | |
SWIM_LAP_COUNT | [Jenis data: Panjang] |
Jenis data per olahraga
Jenis data yang berbeda ditampilkan untuk setiap jenis olahraga. Jenis data yang
ditampilkan konsisten dengan kebutuhan olahraga. Misalnya,
Jenis Olahraga BERSEPEDA tidak menampilkan Jenis Data LANGKAH. Gunakan metode
Capabilities
saat runtime untuk menentukan jenis data yang
didukung di perangkat pengguna.
Setidaknya, semua jenis olahraga menampilkan data detak jantung dan kalori. Olahraga lainnya dapat mendukung jenis data tambahan, bergantung pada persyaratan untuk olahraga tersebut.
Berikut beberapa contohnya:
- Olahraga seperti meditasi atau pilates hanya mendukung detak jantung dan kalori
- Olahraga seperti basket atau bulu tangkis mendukung detak jantung, kalori, jarak, dan langkah.
- Olahraga seperti berjalan dan berlari mendukung detak jantung, kalori, jarak, jumlah langkah, kecepatan, dan langkah
- Berenang mendukung detak jantung, kalori, jarak, dan putaran saat berenang
Klien Pemantauan Pasif
Jenis Data berikut bersifat wajib untuk semua perangkat yang menjalankan Wear OS agar mendukung aplikasi yang secara pasif memantau data kesehatan seperti detak jantung dan jumlah langkah. Setiap Jenis Data ini harus berasal dari data yang dihasilkan oleh sensor pada smartwatch saja.
Perilaku yang diharapkan
Untuk menghemat daya, pembacaan sensor yang diperoleh menggunakan Pemantauan Pasif disimpan di MCU dan dikelompokkan ke Fitur Kesehatan. Hasil batch ini akan ditampilkan dalam interval yang berbeda, bergantung pada perilaku sistem. Beberapa contohnya antara lain menampilkan batch ketika buffer sensor penuh, atau saat pengguna berinteraksi dengan layar.
Jangan mengambil interval pengelompokan yang telah ditetapkan atau dapat diprediksi untuk semua jenis data.
Jenis data pemantauan pasif
Metrik | Data yang diharapkan | Catatan |
HEART_RATE_BPM | Detak per menit [Jenis data: Ganda] | Perangkat dapat menampilkan pembacaan detak jantung dalam interval yang berbeda. Beberapa perangkat mungkin membaca setiap detik. Perangkat lain mungkin membaca setiap sepuluh menit. Interval ini tidak disediakan untuk aplikasi. Aplikasi harus dapat beradaptasi tanpa masalah dengan berbagai interval pengambilan sampel. |
STEPS_DAILY/STEPS | [Jenis data: Panjang] | Langkah harian adalah jumlah total langkah yang dilakukan sejak reset terakhir, yang dipicu oleh WHS pada tengah malam. Langkah harian ini termasuk langkah-langkah yang diambil saat olahraga aktif dijeda. Langkah adalah delta terperinci sejak pemeriksaan terakhir. |
DISTANCE_HARIAN/DISTANCE | meter [Jenis data: Ganda] | Dihitung dari Akselerometer/Langkah. Jangan menghitung selama GPS aktif untuk memastikan pengguna yang menonaktifkan layanan lokasi masih dapat menerima jumlah langkah yang akurat. |
SPEED | [meter/detik] [Jenis data: Ganda] | |
KALORI_HARIAN | kCal [Jenis data: Ganda] | Kalori selama sehari penuh, termasuk kalori aktif dan BMR. Angka kalori yang ditampilkan di sini memperhitungkan tinggi, berat, usia, dan gender pengguna seperti yang ditentukan dalam setelan sistem. Kalori tidak disesuaikan menurut data profil pengguna yang dikumpulkan di aplikasi Anda. |
RUNNING_STEPS (opsional) | [Jenis data: Panjang] | Delta langkah selama olahraga dan sebaliknya. Melacak keduanya secara bersamaan. |
WALKING_STEPS (opsional) | [Jenis data: Panjang] | |
ELEVATION_GAIN | meter [Jenis data: Ganda] | Hanya mencakup delta positif pada elevasi |
ELEVATION_LOSS | meter [Jenis data: Ganda] | Hanya mencakup delta negatif pada elevasi |
LANTAI_HARIAN | [Jenis data: Ganda] | Dapat direpresentasikan sebagai lantai “sebagian” |
Pemantauan pasif untuk sasaran harian
Metrik | Data yang diharapkan | Catatan |
LANGKAH_HARIAN | [Jenis data: Panjang] | Langkah harian, seperti langkah yang dilakukan saat olahraga aktif dijeda, adalah jumlah total langkah yang diambil sejak reset terakhir. WHS direset pada tengah malam. |
LANTAI_HARIAN | [Jenis data: Ganda] | Dapat direpresentasikan sebagai lantai tangga “sebagian”. |
KALORI_HARIAN | kCal [Jenis data: Ganda] | Kalori selama sehari penuh, yang mencakup kalori aktif dan BMR. |
RAJA_HARIAN | meter [Jenis data: Ganda] | Dihitung dari akselerometer atau jumlah langkah. Jangan menghitungnya menggunakan GPS agar pengguna yang menonaktifkan layanan lokasi tetap dapat menerima jumlah langkah akurat. |
DAILY_ELEVATION_GAIN | meter [Jenis data: Ganda] | Hanya mencakup delta positif pada elevasi |
MeasureClient
Gunakan MeasureClient
untuk mengukur detak jantung pada waktu tertentu.
Perilaku yang diharapkan
MeasureClient
dan PassiveClient
mirip dalam beberapa hal. Keduanya memberikan
statistik kesehatan non-batch yang tidak berhubungan dengan olahraga. Anda dapat menggunakan keduanya untuk mengukur
detak jantung, tetapi perbedaan utamanya adalah MeasureClient
menyertakan
ketersediaan data detak jantung, sedangkan PassiveClient
tidak menyertakan info
ketersediaan.
Jenis data
Metrik | Data yang diharapkan | Catatan |
HEART_RATE_BPM | Detak per menit [Jenis data: Ganda] | Juga menyertakan ketersediaan |
Fitur yang didukung
Selain Jenis Data Olahraga dan Jenis Data Pemantauan Pasif, perangkat juga mendukung fitur tambahan untuk memicu peristiwa seperti memulai olahraga dan mengukur status seperti tidur vs. terbangun. Beberapa fitur ini tersedia di semua perangkat, dan fitur lainnya hanya ada di beberapa perangkat.
Pemicu peristiwa
Semua perangkat mendukung pemicu umum berikut:
- Sasaran harian untuk jarak dan langkah
- Target olahraga untuk langkah, jarak, dan durasi.
Perangkat lain mungkin mendukung pemicu peristiwa yang lebih canggih. Berikut beberapa contohnya:
- Menghitung putaran saat berenang
- Target olahraga untuk kalori yang terbakar
- Target olahraga untuk kecepatan sesaat
Status
Semua perangkat mendukung fungsi status dasar. Fungsi status mengacu pada kondisi apakah pengguna saat ini sedang melakukan olahraga aktif atau tidak
Perangkat lain mungkin menyediakan fungsi status tambahan. Beberapa fungsi status tambahan mencakup fungsi untuk mendeteksi apakah olahraga telah dijeda atau dilanjutkan secara otomatis, atau kapan pengguna terbangun atau tidur.
Peringatan kesehatan dalam pemantauan pasif
Beberapa perangkat mendukung notifikasi kesehatan. Fitur ini tidak didukung di semua perangkat. Beberapa notifikasi kesehatan termasuk mendeteksi kelainan detak jantung atau mendeteksi kejadian jatuh.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Data aktif dan olahraga
- Fitur Kesehatan di Wear OS