Android 安卓:如何获取与GATT服务的可测量心率特征相关的时间戳?

Android 安卓:如何获取与GATT服务的可测量心率特征相关的时间戳?,android,timestamp,bluetooth-lowenergy,sensors,bluetooth-gatt,Android,Timestamp,Bluetooth Lowenergy,Sensors,Bluetooth Gatt,我按照规定做,一切都很好。我可以从GATT服务器中发现心率服务,然后从心率特征样本中获取所有更新 但是,是否有一个特征来获取与每个心率样本相关的时间戳?无论何时获取样本,获取System.currentMillis()对我来说都太不准确了。我想要这样的东西 if (UUID_HEART_RATE_TIMESTAMP.equals(characteristic.getUuid())) 编辑: 我指的是这一行的例子 if (UUID_HEART_RATE_MEASUREMENT.equals(c

我按照规定做,一切都很好。我可以从GATT服务器中发现心率服务,然后从心率特征样本中获取所有更新

但是,是否有一个特征来获取与每个心率样本相关的时间戳?无论何时获取样本,获取System.currentMillis()对我来说都太不准确了。我想要这样的东西

 if (UUID_HEART_RATE_TIMESTAMP.equals(characteristic.getUuid()))
编辑: 我指的是这一行的例子

if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
应用程序可以解析心率传感器接收到的数据。有没有办法将时间戳值与心率一起解析?我需要的结果是两个值,而不是单一的听到率

(时间戳,心率)

无法接收与可恢复心率测量相关的准确时间戳,因为这不是:

3.4对时间敏感数据的要求

心率测量特性包含时间敏感数据,并且 考虑到时间敏感特性,因此以下要求适用:

因为此服务不提供时间戳来标识测量时间 (和年龄)的数据,心率测量特征值应为 如果未建立连接或未发送通知,则丢弃 已成功发送到客户端(例如,链路丢失)

如文档所示,您可以假设传输的测量值是“新的”,因此在到达时使用接收设备的时间戳是一个很好的近似值

不幸的是,RR间隔可能需要更高的精度,并且包含在相同的非时间戳测量中。评估单个RR间隔的时间戳可能需要更多技巧,因为每次测量都将多个间隔捆绑在一起

如果自上次通知后测量的RR间隔值超过一个 心率测量特征,则剩余RR间隔值应为 包括在下一个可用的心率测量特征中

如果心率传感器的内部缓冲器中没有可用空间,则可能 放弃最旧的RR间隔值

因此,您可能必须使用传输间隔来评估是否已删除测量值,这会影响您对RR间隔加时间戳的能力

在典型应用中,通知心率测量特性 大约每秒1次,包括心率测量值字段 以及RR间隔字段(如果支持)


你能在检查条件之前添加日志吗?你得到的值是什么?检查条件是虚构的,因为目前我不知道哪个UUID与时间戳相关。我编辑了这个问题以添加更多细节