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 một trình mô phỏng chạy Wear OS 4 (API 33) hoặc Wear OS 3 (API 30), 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 để 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 và Wear OS 4.

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

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

  • Tính năng tạo dữ liệu tổng hợp trên Wear OS 4 được tích hợp với vòng đời của 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 thể dục. 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 theo cách người dùng vẫn thường làm.

  • Hỗ trợ mở rộng 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 đánh gôn.

Sử dụng Bảng cảm biến cho Dịch vụ sức khoẻ

Bản cập nhật tính năng Koala trong Android Studio (Canary) bao gồm một bảng điều khiển cảm biến Dịch vụ sức khoẻ trê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ể. Điều quan trọng là phải kiểm thử khi tạo ứ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 này để 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ẻ trên Wear). Mở bảng điều khiển Dịch vụ sức khoẻ trên Wear Bảng điều khiển Dịch vụ sức khoẻ trên Wear sẽ mở ra, cho thấy 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ể thực hiện các thao tác sau:

  • Chuyển đổi giữa Các chức năng tiêu chuẩn, Tất cả chức năng (mặc định) hoặc Tuỳ chỉnh. Chọn Apply (Áp dụng) để gửi danh sách chức 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 các chức năng về giá trị bật tắt mặc định.
  • Kích hoạt các sự kiện khác nhau của người dùng sau khi bạn chọn nút thả xuống Sự kiện kích hoạt. Tại đây, bạn có thể Kích hoạt thao tác tự động tạm dừng/tiếp tục các hoạt động tập thể dục, Kích hoạt sự kiện ngủ do người dùng thực hiện 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 nhỏ.
  • Ghi đè các giá trị cảm biến sau khi bạn bắt đầu bài tập thể dục trong ứ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ố về bài tập thể dục, 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 rất hữu ích khi kiểm thử cách ứng dụng của bạn xử lý nhiều điều kiện tập thể dục và xu hướng tập 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 điều khiển cảm biến và để trình mô phỏng tự động tạo dữ liệu.

Sử dụng các chế độ kiểm soát 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ác giá trị dữ liệu giống nhau 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 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 thấy chế độ tự động tiếp tục

whs.AUTO_RESUME_DETECTED

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

whs.FALL_OVER

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

whs.START_SLEEPING

Đã phát hiện chế độ Ngủ

whs.STOP_SLEEPING

Đã phát hiện cú đánh gôn

whs.GOLF_SHOT

Ví dụ: bạn có thể 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 các sự kiện đánh gôn, bạn nên chỉ định các thông số bổ sung cho loại xoay khi đánh gôn, được nêu dưới đây:

Loại xích đánh gôn

Tham số

Loại gậy đẩy

gạt bóng

Loại xích đu

một phần

Loại xích đu đầy đủ

tối đa

Thêm kiểu đánh golf sau khi chỉ định sự kiện đá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 gôn 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 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 đây để 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 đưa ra 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ã.