我正在尝试从模拟手表(运行 Wear OS 4/ API Level 14)和最新版本的 Android Studio Preview 记录心率数据。我正在使用 Android Studio 的 PassiveMonitoringClient(Android Studio Health Services 的一部分)。这是我刚刚在 MainActivity OnCreate 中编写的代码片段。现在,我只想要一个读取一些心率数据的最小工作示例。
val healthClient = HealthServices.getClient(this)
val passiveMonitoringClient = healthClient.passiveMonitoringClient
val passiveListenerConfig = PassiveListenerConfig.builder()
.setDataTypes(setOf(DataType.HEART_RATE_BPM, DataType.GOLF_SHOT_COUNT))
.build()
val passiveListenerCallback: PassiveListenerCallback = object : PassiveListenerCallback {
override fun onNewDataPointsReceived(dataPoints: DataPointContainer) {
for (dataPoint in dataPoints.sampleDataPoints) {
val heartRate = dataPoint.value
Log.i("WearApp", "Received heart rate: $heartRate")
}
}
}
passiveMonitoringClient.setPassiveListenerCallback(
passiveListenerConfig,
passiveListenerCallback,
)
我正在使用 adb 命令来启动活动(步行):
adb shell am broadcast \
-a "whs.USE_SYNTHETIC_PROVIDERS" \
com.google.android.wearable.healthservices
随后,
adb shell am broadcast \
-a "whs.synthetic.user.START_WALKING" \
com.google.android.wearable.healthservices
文档说开始步行活动应该开始生成心率数据,但我的日志行从未被打印,并且我验证回调从未被调用。
请注意,我可以验证 adb 是否已连接到正确的模拟设备,但我不确定命令是否按预期工作。
我的清单中应该有相关权限。以防万一:
<uses-permission android:name="android.permission.BODY_SENSORS" />
<uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND"/>
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
<uses-permission android:name="android.permission.health.READ_HEART_RATE"/>
我在应用程序中没有任何权限请求设置,它只是一个带有此代码的基础项目,用于在将其合并到我的主应用程序之前测试传感器读数。
谢谢!
从 Wear OS 4 开始,adb 命令不再起作用——模拟器自动生成数据。尝试在 Wear 4 模拟器中运行 PassiveGoalsCompose 以查看其实际效果。