Garmin-Watch Face:如何显示心率?

Garmin-Watchface: How to show Heartrate?

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

Details: Module 'Toybox.Sensor' not available to 'Watch Face'

Stack: - onStart() at /Users/…/source/_garmin_projectAPP.mc:13 0x10000095 Permission Required

在清单中我添加了所有可用权限,我还使用

导入了传感器

using Toybox.Sensor

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

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

我尝试了 initialize()onStart(state) 方法,但仍然出现如上所示的错误。

"watch face" 类型的 CIQ 应用程序无法以这种方式访问​​传感器。相反,您需要使用 Activity and/or ActivityMonitor 模块中可用的方法。

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

Activity.getActivityInfo().currentHeartRate()

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

ActivityMonitor.getHeartRateHistory()

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