Mô phỏng dữ liệu cảm biến bằng Dịch vụ sức khoẻ

Sử dụng dữ liệu tổng hợp được tạo từ Dịch vụ sức khoẻ trên Wear OS để kiểm thử ứng dụng như thể một bài tập thể dục đang thực sự diễn ra.

Nếu đang kiểm thử trên trình mô phỏng chạy Wear OS 3 (API cấp 30) trở lên, bạn có thể sử dụng dữ liệu tổng hợp do trình mô phỏng tạo. Hãy tham khảo hướng dẫn sau đây để tìm hiểu thêm về sự khác biệt giữa việc tạo dữ liệu tổng hợp cho Wear OS 3 trở lên.

Sử dụng dữ liệu tổng hợp trên Wear OS 4 trở lên

Nếu đang kiểm thử trên trình mô phỏng chạy Wear OS 4 (API cấp 33) trở lên, bạn có thể sử dụng dữ liệu tổng hợp do trình mô phỏng tạo ra để kiểm thử ứng dụng. Điều này mang lại một số điểm cải tiến so với cách tạo dữ liệu tổng hợp trên các phiên bản Wear OS cũ:

  • Tính năng tạo dữ liệu tổng hợp trên Wear OS 4 trở lên được tích hợp với vòng đời API Dịch vụ sức khoẻ. Điều này có nghĩa là bạn không cần các lệnh adb để bắt đầu hoặc dừng bài tập. Thay vào đó, bạn có thể bắt đầu hoặc dừng bài tập thể dục trong ứng dụng như người dùng.

  • Mở rộng khả năng hỗ trợ cho các sự kiện tập thể dục: Bạn có thể mô phỏng việc nhận sự kiện tự động tạm dừng và tiếp tục, sự kiện ngã, phát hiện giấc ngủphát hiện cú đánh gôn.

Sử dụng Bảng điều khiển cảm biến của Dịch vụ sức khoẻ

Bản phát hành tính năng Koala của Android Studio (Canary) bao gồm Dịch vụ sức khoẻ trên bảng điều khiển cảm biến Wear OS. Bạn có thể dùng bảng điều khiển này để mô phỏng một thiết bị có hoặc không có các chức năng cảm biến cụ thể. Đây là yếu tố quan trọng cần kiểm thử khi xây dựng ứng dụng thể dục trên Wear OS.

Bạn cũng có thể sử dụng bảng điều khiển để thay đổi giá trị của các chỉ số và quan sát cách ứng dụng điều chỉnh.

Để mở và sử dụng bảng điều khiển, hãy làm như sau:

  1. Tạo hoặc mở một Thiết bị Android ảo (AVD)chạy ứng dụng trên trình mô phỏng.
  2. Trong bảng điều khiển của trình mô phỏng, hãy chọn Wear Health Services (Dịch vụ sức khoẻ Wear). Mở bảng điều khiển Dịch vụ sức khoẻ trên Wear Bảng điều khiển Wear Health Services (Dịch vụ sức khoẻ Wear) sẽ mở ra, hiển thị danh sách các cảm biến có trên nhiều thiết bị chạy Android.

Sau khi bảng điều khiển mở ra, bạn có thể làm như sau:

  • Chuyển đổi giữa Chức năng tiêu chuẩnTất cả chức năng (mặc định) để chọn nhóm chức năng được bật trong bài tập tiếp theo. Bạn có thể bật hoặc tắt từng tính năng bằng cách chọn hộp đánh dấu. Chọn Apply (Áp dụng) để gửi danh sách tính năng hiện tại đến thiết bị được mô phỏng, rồi chọn Reset (Đặt lại) để khôi phục danh sách tính năng về các giá trị bật/tắt mặc định.
  • Kích hoạt các sự kiện người dùng khác nhau sau khi bạn chọn nút thả xuống Kích hoạt sự kiện. Tại đây, bạn có thể Kích hoạt tính năng tự động tạm dừng/tiếp tục các hoạt động thể dục, Kích hoạt sự kiện ngủ của người dùng và Kích hoạt cú đánh gôn mà người dùng thực hiện trên sân gôn hoặc sân gôn mini.
  • Ghi đè các giá trị cảm biến sau khi bạn bắt đầu tập thể dục trong một ứng dụng đã cài đặt trên trình mô phỏng. Sau khi bạn nhập giá trị mới cho các chỉ số tập thể dục khác nhau, hãy chọn Apply (Áp dụng) để đồng bộ hoá các giá trị này với trình mô phỏng. Điều này hữu ích cho việc kiểm thử cách ứng dụng của bạn xử lý các điều kiện tập thể dục khác nhau và xu hướng thể dục của người dùng.

Tạo dữ liệu tổng hợp bằng trình mô phỏng

Bạn cũng có thể chạy ứng dụng mà không cần bảng cảm biến và để trình mô phỏng tự động tạo dữ liệu.

Sử dụng các chế độ điều khiển trong ứng dụng để bắt đầu, tạm dừng và kết thúc quá trình tạo dữ liệu tổng hợp.

Ngoài ra, xin lưu ý rằng trình mô phỏng tạo ra cùng một giá trị dữ liệu cho mỗi bài tập.

Mô phỏng sự kiện

Bạn có thể mô phỏng nhiều sự kiện trong trình mô phỏng, chẳng hạn như AUTO_PAUSE_DETECTED. Bạn có thể dùng lệnh sau để kích hoạt các sự kiện đó:

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

Sự kiện tổng hợp

Sự kiện

Khoá

Phát hiện chế độ Tự động tạm dừng

whs.AUTO_PAUSE_DETECTED

Phát hiện tính năng Tự động tiếp tục

whs.AUTO_RESUME_DETECTED

Phát hiện bị ngã

whs.FALL_OVER

Đã phát hiện giấc ngủ

whs.START_SLEEPING

Phát hiện trạng thái ngừng ngủ

whs.STOP_SLEEPING

Phát hiện cú đánh golf

whs.GOLF_SHOT

Ví dụ: bạn có thể sử dụng lệnh sau để kích hoạt sự kiện tự động tạm dừng:

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

Đối với sự kiện cú đánh gôn, bạn nên chỉ định các thông số bổ sung cho loại cú đánh gôn, như được nêu dưới đây:

Loại cú đánh golf

Thông số

Loại cú đánh bóng vào lỗ

gạt bóng

Loại Swing Partial

một phần

Loại Swing Full

tối đa

Thêm loại cú đánh golf sau khi chỉ định sự kiện cú đánh golf:

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

Ví dụ: lệnh sau đây kích hoạt một cú đánh golf một phần:

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

Sử dụng dữ liệu tổng hợp trên Wear OS 3

Nếu đang kiểm thử trên một trình mô phỏng chạy Wear OS 3, bạn cũng có thể sử dụng dữ liệu tổng hợp để kiểm thử ứng dụng.

Bật tính năng tạo dữ liệu tổng hợp

Hoàn tất các bước sau để bật tính năng tạo dữ liệu tổng hợp trên Wear OS 3.

  1. Bật tuỳ chọn cho nhà phát triển.
  2. Phát lệnh adb sau để bật chế độ tổng hợp:

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

Sau khi bật tính năng tạo dữ liệu tổng hợp, hãy phát các lệnh được mô tả trên trang này để kiểm soát hành vi của "người dùng dữ liệu tổng hợp".

Tắt tính năng tạo dữ liệu tổng hợp

Để quay lại sử dụng các cảm biến thực, hãy chạy lệnh sau:

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

Bài tập tổng hợp

Dịch vụ sức khoẻ hỗ trợ các loại bài tập thể dục sau:

  • Đi bộ: whs.synthetic.user.START_WALKING
  • Chạy: whs.synthetic.user.START_RUNNING
  • Đi bộ đường dài: whs.synthetic.user.START_HIKING
  • Bơi: whs.synthetic.user.START_SWIMMING
  • Chạy trên máy chạy bộ: whs.synthetic.user.START_RUNNING_TREADMILL

Bài tập sẽ tạo dữ liệu tổng hợp thực tế cho các loại dữ liệu sau:

  • Nhịp tim
  • Số bước/phút
  • Vị trí GPS sử dụng một tuyến đường mặc định
  • Thời lượng của hoạt động
  • Độ cao và số tầng

Ngoài ra, các trạng thái sau cũng được tạo:

  • Trạng thái ngủ – ngủ hoặc thức
  • Phát hiện tình trạng bị ngã

Bắt đầu

Để bắt đầu mô phỏng một bài tập thể dục, hãy phát đi thông báo thích hợp cho 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

Mỗi hoạt động đều có các giá trị đặt trước cho các chỉ số được hỗ trợ:

Hoạt động Nhịp tim Tốc độ trung bình Thay đổi độ cao Dùng thông tin vị trí
Đi bộ 120 bpm 1.4 m/giây 20.0 m/phút đúng
Đang chạy 170 bpm 2.3 m/giây 20.0 m/phút đúng
Đi bộ đường dài 150 bpm 1.3 m/giây 20.0 m/phút đúng
Bơi 150 bpm 1.6 m/giây 0.0 m/phút đúng
Chạy trên máy chạy bộ 160 nhịp/phút 2.3 m/giây 20.0 m/phút false (sai)

Dừng

Để dừng hoạt động tổng hợp dữ liệu, hãy sử dụng lệnh sau:

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

Tuỳ chỉnh

Để kiểm soát chính xác hơn những chỉ số được tạo, hãy bắt đầu một hoạt động tuỳ chỉnh về bài tập thể dục bằng chuỗi hành động whs.synthetic.user.START_EXERCISE. Cung cấp bất kỳ tổ hợp cờ nào sau đây:

  • --ei exercise_options_duration_secs <int>: thời lượng của bài tập tính bằng giây. Mặc định: 0.
  • --ei exercise_options_heart_rate <int>: nhịp tim tính theo số nhịp/phút. Trung bình: 70.
  • --ef exercise_options_average_speed <float>: tốc độ trung bình tính theo mét/giây. Đồng thời, cũng ảnh hưởng đến số bước/phút hoặc tần suất. Mặc định: 0.
  • --ez exercise_options_use_location <boolean>: có phát đi dữ liệu vị trí trong quá trình tập thể dục hay không thông qua tuyến đường mặc định. Mặc định: false.
  • --ef exercise_options_max_elevation_rate <float>: tốc độ thay đổi độ cao tối đa có thể tính bằng mét/phút. Mặc định: 0.

Ví dụ: đặt các tuỳ chọn bài tập thể dục theo cách sau:

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

Bạn cũng có thể thay đổi loại dữ liệu có sẵn, cho dù phần cứng thực hay phần cứng mô phỏng có hỗ trợ một loại dữ liệu cụ thể hay không. Ví dụ: bạn có thể bật hoặc tắt độ cao tuyệt đối, như minh hoạ trong đoạn mã sau:

# 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

Các trạng thái và sự kiện khác

Trạng thái ngủ

Bạn cũng có thể kích hoạt trạng thái ngủ cho người dùng dữ liệu tổng hợp. 2 trạng thái được hỗ trợ là ngủ và thức.

Để chuyển sang trạng thái ngủ, hãy chạy lệnh sau:

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

Để chuyển sang trạng thái thức, hãy chạy lệnh sau:

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

Phát hiện tình trạng bị ngã

Để mô phỏng tình trạng bị ngã, hãy chạy lệnh sau:

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

Có thể mất đến một phút để dịch vụ sức khoẻ thực hiện sự kiện ngã.