garmin - 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)
方法,但仍然得到上面显示的错误。
解决方案
“表盘”类型的 CIQ 应用程序无法以这种方式访问传感器。相反,您需要使用 Activity 和/或 ActivityMonitor 模块中可用的方法。
如果手表设备较新,它可能支持调用此方法,该方法返回每秒更新的心率值:
Activity.getActivityInfo().currentHeartRate()
否则,您可以调用此方法并使用最近的值,即最后一分钟内的心率:
ActivityMonitor.getHeartRateHistory()
在这两种情况下,您都需要检查空值,如果传感器不可用或用户没有佩戴手表,就会发生这种情况。
推荐阅读
- javascript - 复制文件的 Gulpfile 任务应优化图像(如果有)
- c# - .Net Core 托管服务需要 HttpContext
- r - R中x轴的描述
- javascript - 从表数据中获取 Javascript 对象数组
- react-native - 是否可以在反应本机路由器通量中创建抽屉菜单?
- asp.net - ResolveUrl 在文件夹中找不到 web 服务
- java - 如何通过 Swagger 将 Java POJO 转换为 JSON 模型和示例,就像它在 swagger-ui 中显示的那样
- r - 在 R 中删除数据框中的行后,如何更新 View() 中的行号?
- mysql - 无法将 None 插入 mysql int 字段
- javascript - 如何覆盖默认浏览器撤消操作