使用由 Wear OS 上的健康服务生成的合成数据来测试您的应用,就像 确实发生了某项运动。
如果您在搭载 Wear OS 3(API 级别 30)或更高版本的模拟器上进行测试,请执行以下操作: 您可以使用模拟器生成的合成数据。请查阅以下内容 有关生成合成数据之间的差异的指南, Wear OS 3 及更高版本。
在 Wear OS 4 及更高版本上使用合成数据
如果您在搭载 Wear OS 4(API 级别 33)或更高版本的模拟器上进行测试,则需要 可以使用模拟器生成的合成数据来测试您的应用。这个 对生成合成数据的方式进行了许多改进, Wear OS 的早期版本:
Wear OS 4 及更高版本上的合成数据生成功能与 Health Services API 生命周期。也就是说,无需使用 命令来开始或停止锻炼。不过,您可以启动或停止 和用户在应用内进行锻炼活动一样。
扩展了对锻炼事件的支持:您可以模拟接收自动暂停 和恢复事件 秋季事件 睡眠检测、 和高尔夫击球检测。
使用健康服务传感器面板
Android Studio Koala Feature Drop (Canary) 包含 Wear OS 传感器面板上的健康服务。该面板可用于模拟 设备具有或不具备特定的传感器功能,这一点很重要 在 Wear OS 上构建健身应用时要进行测试。
您还可以使用面板更改指标的值,并观察 应用会进行调整。
如需打开并使用该面板,请执行以下操作:
- 创建或打开 Android 虚拟设备 (AVD) 然后在模拟器上运行应用。
- 在模拟器面板中,选择 Wear Health Services。
Wear Health Services 面板 显示了一系列可用的传感器 采用 Android 的手机。
该面板打开后,您可以执行以下操作:
- 在标准功能、 所有功能(默认)或自定义。选择应用,以发送 模拟设备的当前功能列表,然后选择 Reset 以 将功能列表恢复为默认的开/关值。
- 选择触发事件后,触发不同的用户事件 下拉按钮。您可以在此处触发自动暂停/恢复健身功能 活动、用户的触发睡眠事件和触发高尔夫球 用户点击高尔夫球场或迷你高尔夫球场的画面。
- 当您在已安装的应用中开始锻炼后,替换传感器值 。为不同的锻炼指标输入新值后, 选择 Apply 以将这些值与模拟器同步。这对于 测试您的应用如何处理不同的运动条件和用户健身 趋势。
使用模拟器生成合成数据
您还可以在不使用传感器面板的情况下运行应用, 由模拟器自动生成。
您可以使用应用内控件开始、暂停和结束合成数据生成。
另请注意,模拟器会为每个运动生成相同的数据值。
模拟事件
您可以在模拟器中模拟各种事件,例如 AUTO_PAUSE_DETECTED
。
以下命令可用于触发这些事件:
adb shell am broadcast -a "whs.event-key" com.google.android.wearable.healthservices
合成事件
事件 |
键 |
---|---|
检测到自动暂停 |
|
检测到自动恢复 |
|
检测到跌倒 |
|
检测到睡眠 |
|
检测到睡眠停止 |
|
检测到高尔夫打球 |
|
例如,您可以使用以下命令触发自动暂停事件:
adb shell am broadcast -a "whs.AUTO_PAUSE_DETECTED" com.google.android.wearable.healthservices
对于高尔夫球拍事件,您应该为高尔夫球挥杆类型、 具体概述如下:
高尔夫挥杆类型 |
参数 |
---|---|
秋千推杆类型 |
推杆推球 |
部分秋千类型 |
部分 |
秋千式 |
最亮 |
在指定高尔夫击球事件后添加高尔夫球挥杆类型:
adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type \ "golf-swing-type-parameter" com.google.android.wearable.healthservices
例如,以下命令会触发高尔夫局部命中:
adb shell am broadcast -a "whs.GOLF_SHOT" --es golf_shot_swing_type "partial" \ com.google.android.wearable.healthservices
在 Wear OS 3 上使用合成数据
如果您在运行 Wear OS 3 的模拟器上进行测试,也可以使用合成工具 测试您的应用
启用合成数据生成功能
如需在 Wear OS 3 上启用合成数据生成功能,请完成以下步骤。
- 启用开发者选项。
发出以下
adb
命令以启用合成模式:adb shell am broadcast \ -a "whs.USE_SYNTHETIC_PROVIDERS" \ com.google.android.wearable.healthservices
启用合成数据生成功能后,可发出 页面控制“合成用户”的行为。
停用合成数据生成
如需切换回使用实际传感器,请运行以下命令:
adb shell am broadcast \
-a "whs.USE_SENSOR_PROVIDERS" \
com.google.android.wearable.healthservices
合成运动
健康服务支持以下运动类型:
- 走路:
whs.synthetic.user.START_WALKING
- 跑步:
whs.synthetic.user.START_RUNNING
- 远足:
whs.synthetic.user.START_HIKING
- 游泳:
whs.synthetic.user.START_SWIMMING
- 跑台跑步:
whs.synthetic.user.START_RUNNING_TREADMILL
这些运动会生成以下数据类型的实际合成数据:
- 心率
- 每分钟步数
- GPS 位置(使用一条默认路线)
- 活动时长
- 海拔和楼层
此外,还可以生成以下状态:
- 睡眠状态 - 睡眠或清醒
- 跌倒检测
开始
如需开始模拟运动,请向 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
每项活动在支持的各项指标上的预设值如下:
活动 | 心率 | 平均速度 | 海拔变化 | 使用位置信息 |
---|---|---|---|---|
步行 | 120 bpm | 1.4 米/秒 | 20.0 米/分钟 | 是 |
跑步 | 170 bpm | 2.3 米/秒 | 20.0 米/分钟 | 是 |
远足 | 150 bpm | 1.3 米/秒 | 20.0 米/分钟 | 是 |
游泳 | 150 bpm | 1.6 米/秒 | 0.0 米/分钟 | 是 |
跑台跑步 | 160 bpm | 2.3 米/秒 | 20.0 米/分钟 | 否 |
停止
如需停止综合活动,请使用以下命令:
adb shell am broadcast \
-a "whs.synthetic.user.STOP_EXERCISE" \
com.google.android.wearable.healthservices
自定义
如需更精确地控制将要生成哪些指标,请使用操作字符串 whs.synthetic.user.START_EXERCISE
来启动自定义运动活动:提供以下标志的任意组合:
--ei exercise_options_duration_secs <int>
:运动时长(秒)。默认值:0
。--ei exercise_options_heart_rate <int>
:心率(每分钟心跳次数)。平均值:70
。--ef exercise_options_average_speed <float>
:平均速度(米/秒)。还会影响每分钟步数或迈步频率。默认值:0
。--ez exercise_options_use_location <boolean>
:是否在运动期间发出位置数据(使用默认路线)。默认值:false
。--ef exercise_options_max_elevation_rate <float>
:可能的最大海拔变化速度(米/分钟)。默认值:0
。
例如,可以按照以下方式设置运动选项:
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
此外,无论实际硬件或模拟硬件是否支持某种特定数据类型,您都可以更改可用的数据类型。例如,您可以启用或停用绝对海拔,如以下代码段所示:
# 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
其他状态和事件
睡眠状态
您还可以为合成用户触发睡眠状态。支持两种状态:睡眠和清醒。
如需进入睡眠状态,请运行以下命令:
adb shell am broadcast \
-a "whs.synthetic.user.START_SLEEPING" \
com.google.android.wearable.healthservices
如需进入清醒状态,请运行以下命令:
adb shell am broadcast \
-a "whs.synthetic.user.STOP_SLEEPING" \
com.google.android.wearable.healthservices
跌倒检测
如需模拟跌倒情况,请运行以下命令:
adb shell am broadcast \
-a "whs.synthetic.user.FALL_OVER" \
com.google.android.wearable.healthservices
健康服务最多可能需要 1 分钟才能提供跌倒事件数据。
为您推荐
- 注意:未启用 JavaScript 时,系统会显示链接文字
- SourceType
- ArithmeticExpression
- ListConfiguration