首页 > 解决方案 > Garmin-Watchface:如何显示心率?

问题描述

在表盘中,我创建了可以显示时钟时间的 ConnectIQ (4.30),但是当我尝试显示心率时出现错误

详细信息:模块“Toybox.Sensor”不适用于“Watch Face”

堆栈: - onStart() at /Users/.../source/_garmin_projectAPP.mc:13 0x10000095 需要权限

在清单中我添加了所有可用权限,我还导入了传感器

使用 Toybox.Sensor

我也不确定在哪里启用心率传感器,例如

Sensor.setEnabledSensors([Sensor.SENSOR_HEARTRATE]);
Sensor.enableSensorEvents(method(:onSensor));

我尝试了initialize()andonStart(state)方法,但仍然得到上面显示的错误。

标签: garminconnectiq

解决方案


“表盘”类型的 CIQ 应用程序无法以这种方式访问​​传感器。相反,您需要使用 Activity 和/或 ActivityMonitor 模块中可用的方法。

如果手表设备较新,它可能支持调用此方法,该方法返回每秒更新的心率值:

Activity.getActivityInfo().currentHeartRate()

否则,您可以调用此方法并使用最近的值,即最后一分钟内的心率:

ActivityMonitor.getHeartRateHistory()

在这两种情况下,您都需要检查空值,如果传感器不可用或用户没有佩戴手表,就会发生这种情况。


推荐阅读