You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio的Wear OS模拟器中检测心率?

Wear OS模拟器心率检测支持情况及问题解决建议

模拟器支持情况

Wear OS 3及以上的模拟器支持心率检测,但需通过Google Health Services的合成数据功能模拟心率数据,无法直接获取硬件传感器数据。

问题分析与解决建议

1. 修正合成数据广播命令

你执行的adb命令存在格式问题,导致Intent解析错误(从输出的Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]... }可看出,未正确识别指定的action和包名)。

正确命令如下:

adb shell am broadcast -a whs.synthetic.user.START_RUNNING com.google.android.wearable.healthservices
  • 移除多余的换行反斜杠(终端直接执行无需转义换行)
  • 确保-a参数、action字符串、目标包名的顺序正确

2. 确认模拟器环境配置

  • 必须使用包含Google Play服务的Wear OS 3.0+模拟器镜像:Health Services依赖Google Play服务,不带Play服务的镜像无法使用合成数据功能
  • 检查Health Services应用是否存在:执行adb shell pm list packages | grep healthservices,若输出包含com.google.android.wearable.healthservices则已安装,否则需更换带Play服务的镜像

3. 代码层面检查

  • 权限配置:确保Manifest中声明<uses-permission android:name="android.permission.BODY_SENSORS" />,且运行时动态请求该权限(API 30及以上必须动态申请,用户授权后才能访问心率数据)
  • 数据订阅逻辑:确认使用Health Services API正确订阅心率数据,示例逻辑:
    val healthServicesClient = HealthServices.getClient(context)
    val measureClient = healthServicesClient.measureClient
    val request = MeasureRequest(
        setOf(DataType.HEART_RATE_BPM),
        SampleDataRate.HIGH
    )
    measureClient.registerMeasureCallback(request, callback)
    
  • 避免过滤合成数据:部分实现会判断数据来源,确保代码未拒绝合成的传感器数据

4. 调试与验证

  • 查看Logcat日志:过滤HealthServices或HeartRate关键词,检查是否存在数据订阅失败、权限不足等错误提示
  • 尝试其他合成动作:比如执行adb shell am broadcast -a whs.synthetic.user.START_WALKING com.google.android.wearable.healthservices,验证是否能触发心率数据
  • 重启模拟器和adb:执行adb kill-server && adb start-server,再重启模拟器,规避环境缓存问题

内容的提问来源于stack exchange,提问作者Health Timeout

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 16:32:41