Meningkatkan kompatibilitas aplikasi di seluruh perangkat Wear OS

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.