Menyimulasikan data sensor dengan Fitur Kesehatan

Gunakan data sintetis yang dihasilkan dari Layanan Kesehatan di Wear OS untuk menguji aplikasi Anda seolah-olah latihan benar-benar terjadi.

Jika Anda melakukan pengujian di emulator yang menjalankan Wear OS 3 (level API 30) atau yang lebih tinggi, Anda dapat menggunakan data sintetis yang dihasilkan oleh emulator. Lihat panduan berikut untuk mempelajari lebih lanjut perbedaan antara pembuatan data sintetis untuk Wear OS 3 dan yang lebih tinggi.

Menggunakan data sintetis di Wear OS 4 dan yang lebih tinggi

Jika Anda melakukan pengujian di emulator yang menjalankan Wear OS 4 (level API 33) atau yang lebih tinggi, Anda dapat menggunakan data sintetis yang dihasilkan oleh emulator untuk menguji aplikasi Anda. Hal ini memperkenalkan sejumlah peningkatan dibandingkan cara data sintetis dihasilkan di Wear OS versi sebelumnya:

  • Pembuatan data sintetis di Wear OS 4 dan yang lebih baru terintegrasi dengan siklus proses Health Services API. Artinya, tidak perlu perintah adb untuk memulai atau menghentikan latihan. Sebagai gantinya, Anda dapat memulai atau menghentikan latihan dalam aplikasi seperti yang dilakukan pengguna.

  • Dukungan yang diperluas untuk peristiwa latihan: Anda dapat menyimulasikan penerimaan peristiwa jeda otomatis dan melanjutkan peristiwa, peristiwa jatuh, deteksi tidur, dan deteksi tembakan golf.

Menggunakan Panel Sensor Fitur Kesehatan

Update Fitur Baru Android Studio Koala (Canary) menyertakan panel sensor Fitur Kesehatan di Wear OS. Panel ini dapat digunakan untuk menyimulasikan perangkat yang memiliki atau tidak memiliki kemampuan sensor tertentu, yang penting untuk diuji saat membangun aplikasi kebugaran di Wear OS.

Anda juga dapat menggunakan panel untuk mengubah nilai metrik dan mengamati cara penyesuaian aplikasi Anda.

Untuk membuka dan menggunakan panel, lakukan hal berikut:

  1. Buat atau buka Perangkat Virtual Android (AVD) dan jalankan aplikasi Anda di emulator.
  2. Di panel emulator, pilih Wear Health Services. Membuka panel Wear Health Services Panel Wear Health Services akan terbuka, menampilkan daftar sensor yang tersedia di berbagai perangkat berteknologi Android.

Setelah panel terbuka, Anda dapat melakukan hal berikut:

  • Beralih antara Kemampuan standar dan Semua kemampuan (default) untuk memilih kumpulan kemampuan yang diaktifkan selama latihan berikutnya. Anda dapat mengaktifkan atau menonaktifkan kemampuan individual dengan mencentang kotak. Pilih Terapkan untuk mengirim daftar kemampuan saat ini ke perangkat yang diemulasi, dan pilih Reset untuk memulihkan daftar kemampuan ke nilai aktif/nonaktif defaultnya.
  • Picu peristiwa pengguna yang berbeda setelah Anda memilih tombol drop-down Picu peristiwa. Dari sini, Anda dapat Memicu jeda/lanjutkan otomatis aktivitas kebugaran, Memicu peristiwa tidur oleh pengguna, dan Memicu tembakan golf yang dilakukan pengguna di lapangan golf atau lapangan golf mini.
  • Ganti nilai sensor setelah Anda memulai latihan di aplikasi yang diinstal di emulator. Setelah Anda memasukkan nilai baru untuk berbagai metrik latihan fisik, pilih Terapkan untuk menyinkronkan nilai ini dengan emulator. Fitur ini berguna untuk menguji cara aplikasi Anda menangani berbagai kondisi latihan dan kecenderungan kebugaran pengguna.

Membuat data sintetis dengan emulator

Anda juga dapat menjalankan aplikasi tanpa panel sensor dan membuat data dibuat secara otomatis oleh emulator.

Gunakan kontrol dalam aplikasi Anda untuk memulai, menjeda, dan mengakhiri pembuatan data sintetis.

Perhatikan juga bahwa emulator menghasilkan nilai data yang sama untuk setiap latihan.

Menyimulasikan peristiwa

Anda dapat menyimulasikan berbagai peristiwa di emulator seperti AUTO_PAUSE_DETECTED. Perintah berikut dapat digunakan untuk memicu peristiwa tersebut:

adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices

Peristiwa sintetis

Peristiwa

Kunci

Jeda Otomatis Terdeteksi

whs.AUTO_PAUSE_DETECTED

Lanjutkan Otomatis Terdeteksi

whs.AUTO_RESUME_DETECTED

Jatuh Terdeteksi

whs.FALL_OVER

Tidur Terdeteksi

whs.START_SLEEPING

Deteksi Berhenti Tidur

whs.STOP_SLEEPING

Bidikan Golf Terdeteksi

whs.GOLF_SHOT

Misalnya, Anda dapat menggunakan perintah berikut untuk memicu peristiwa jeda otomatis:

​​adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices

Untuk peristiwa tembakan golf, Anda harus menentukan parameter tambahan untuk jenis ayunan tembakan golf, yang diuraikan dalam tabel berikut:

Tabel 1: Peristiwa dan kuncinya

Jenis Ayunan Pukulan Golf

Parameter

Jenis Swing Putt

putt

Jenis Ayunan Parsial

parsial

Jenis Swing Penuh

penuh

Tambahkan jenis ayunan tembakan golf setelah menentukan peristiwa tembakan golf:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \
  "golf-swing-type-parameter" com.google.android.wearable.healthservices

Misalnya, perintah berikut memicu tembakan golf sebagian:

adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \
  com.google.android.wearable.healthservices

Menggunakan data sintetis di Wear OS 3

Jika Anda menguji di emulator yang menjalankan Wear OS 3, Anda juga dapat menggunakan data sintetis untuk menguji aplikasi Anda.

Mengaktifkan pembuatan data sintetis

Selesaikan langkah-langkah berikut untuk mengaktifkan pembuatan data sintetis di Wear OS 3.

  1. Aktifkan opsi developer.
  2. Berikan perintah adb berikut untuk mengaktifkan mode sintetis:

    adb shell am broadcast \
    -a "whs.USE_SYNTHETIC_PROVIDERS" \
    com.google.android.wearable.healthservices
    

Setelah pembuatan data sintetis diaktifkan, berikan perintah yang dijelaskan di halaman ini untuk mengontrol perilaku "pengguna sintetis".

Menonaktifkan pembuatan data sintetis

Untuk beralih kembali menggunakan sensor sebenarnya, jalankan perintah berikut:

adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices

Olahraga sintetis

Fitur Kesehatan mendukung jenis olahraga berikut:

  • Jalan kaki: whs.synthetic.user.START_WALKING
  • Lari: whs.synthetic.user.START_RUNNING
  • Mendaki: whs.synthetic.user.START_HIKING
  • Berenang: whs.synthetic.user.START_SWIMMING
  • Berlari di atas treadmill: whs.synthetic.user.START_RUNNING_TREADMILL

Olahraga ini menghasilkan data sintetis yang realistis untuk jenis data berikut:

  • Detak jantung
  • Jumlah langkah per menit
  • Lokasi GPS, menggunakan satu rute default
  • Durasi aktivitas
  • Elevasi dan lantai

Selain itu, status berikut dapat dibuat:

  • Status tidur—tidur atau bangun
  • Deteksi jatuh

Memulai

Untuk mulai menyimulasikan olahraga, berikan siaran yang sesuai ke com.google.android.wearable.healthservices:

# start the "walking" synthetic exercise
$ adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices

Setiap aktivitas memiliki preset untuk metrik yang didukung:

Aktivitas Detak jantung Kecepatan rata-rata Perubahan elevasi Gunakan lokasi
Jalan kaki 120 bpm 1,4 m/dtk 20,0 m/mnt true
Lari 170 bpm 2,3 m/dtk 20,0 m/mnt true
Mendaki 150 bpm 1,3 m/dtk 20,0 m/mnt true
Renang 150 bpm 1,6 m/dtk 0,0 m/mnt true
Lari di treadmill 160 bpm 2,3 m/dtk 20,0 m/mnt salah

Menghentikan

Untuk menghentikan aktivitas sintetis, gunakan perintah berikut:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices

Kustom

Untuk kontrol yang lebih akurat terhadap metrik yang dihasilkan, mulai aktivitas olahraga kustom menggunakan string tindakan whs.synthetic.user.START_EXERCISE. Berikan kombinasi flag berikut:

  • --ei exercise_options_duration_secs <int>: durasi olahraga dalam hitungan detik. Default: 0.
  • --ei exercise_options_heart_rate <int>: detak jantung dalam denyut per menit. Rata-rata: 70.
  • --ef exercise_options_average_speed <float>: kecepatan rata-rata dalam meter per detik. Juga memengaruhi langkah per menit, atau irama. Default: 0.
  • --ez exercise_options_use_location <boolean>: apakah memunculkan data lokasi selama olahraga atau tidak, menggunakan rute default. Default: false.
  • --ef exercise_options_max_elevation_rate <float>: tingkat perubahan elevasi maksimum yang dimungkinkan dalam meter per menit. Default: 0.

Misalnya, tetapkan opsi olahraga dengan cara berikut:

adb shell am broadcast \
-a "whs.synthetic.user.START_EXERCISE" \
--ei exercise_options_heart_rate 90 \
--ef exercise_options_average_speed 1.2 \
--ez exercise_options_use_location true \
com.google.android.wearable.healthservices

Anda juga dapat mengubah jenis data yang tersedia, terlepas dari apakah hardware sungguhan atau yang diemulasikan mendukung jenis data tertentu atau tidak. Misalnya, Anda dapat mengaktifkan atau menonaktifkan elevasi absolut, seperti yang ditunjukkan dalam cuplikan berikut:

# enable synthetic mode and enable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation true \
com.google.android.wearable.healthservices

# enable synthetic mode and disable absolute elevation
$ adb shell am broadcast \
-a "whs.CONFIGURE_SYNTHETIC_DEVICE" \
--ez absolute_elevation false \
com.google.android.wearable.healthservices

Status dan peristiwa lainnya

Status tidur

Anda juga dapat memicu status tidur untuk pengguna sintetis. Dua status didukung: tidur dan bangun.

Untuk memasuki status tidur, jalankan perintah ini:

adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices

Untuk memasuki status bangun, jalankan perintah ini:

adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices

Deteksi jatuh

Untuk menyimulasikan peristiwa jatuh, jalankan perintah ini:

adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices

Mungkin perlu waktu hingga satu menit bagi fitur kesehatan untuk mengirimkan peristiwa jatuh.