Android Studio PassiveMonitoringClient 未收到任何合成数据

问题描述 投票:0回答:1

我正在尝试从模拟手表(运行 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"/> 

我在应用程序中没有任何权限请求设置,它只是一个带有此代码的基础项目,用于在将其合并到我的主应用程序之前测试传感器读数。

谢谢!

android kotlin adb wear-os
1个回答
0
投票

从 Wear OS 4 开始,adb 命令不再起作用——模拟器自动生成数据。尝试在 Wear 4 模拟器中运行 PassiveGoalsCompose 以查看其实际效果。

© www.soinside.com 2019 - 2024. All rights reserved.