You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter使用Polar包获取Polar H10心率数据时如何获取时间戳?

问题描述

我正在使用polar包开发Flutter应用,用于记录Polar H10设备的数据。以下是我获取心率数据的代码:

if (availabletypes.contains(PolarDataType.hr)) {
  polar.startHrStreaming(identifier).listen((data) {
     int hr = data.samples.first.hr;
  }
}

在ECG和ACC数据中,我可以通过data.samples.first.timeStamp获取时间戳,但心率(HR)数据对应的PolarHRSample类构造函数中没有该属性,请问如何获取Polar设备发送的心率数据对应的时间戳?


解决方案

1. 读取PolarHrData顶层的时间戳

心率数据流返回的PolarHrData对象本身带有timeStamp字段,这个就是设备发送这批心率数据的原始时间戳,直接读取即可:

if (availabletypes.contains(PolarDataType.hr)) {
  polar.startHrStreaming(identifier).listen((data) {
     int hr = data.samples.first.hr;
     int deviceTimestamp = data.timeStamp; // 获取设备端时间戳
  }
}

该时间戳的精度与ECG/ACC数据的时间戳一致,均为设备端原生时间。

2. 更新至最新版本的polar包

若你使用的是旧版本包,可能存在PolarHrData未暴露时间戳的情况,尝试更新到最新稳定版,这类字段缺失问题通常会在新版本中修复。

3. 本地时间戳作为临时备选

如果上述方法不可行,可以在收到数据的瞬间记录本地时间作为近似值:

if (availabletypes.contains(PolarDataType.hr)) {
  polar.startHrStreaming(identifier).listen((data) {
     int hr = data.samples.first.hr;
     int localTimestamp = DateTime.now().millisecondsSinceEpoch; // 本地时间戳
  }
}

注意:该时间戳是本地设备时间,与Polar H10设备时间可能存在微小偏差,仅适合无严格时间同步要求的场景。

4. 查阅官方仓库的Issue

若问题仍未解决,可前往polar包的官方代码仓库查看是否有其他用户遇到同类问题,或提交新Issue询问维护者,确认是否为设计遗漏或需要特定配置才能获取心率时间戳。

内容的提问来源于stack exchange,提问作者Pranav Bhutada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:03:18