Microsoft Band 2 Data停止加速度计和陀螺仪的流式传输

时间:2016-05-24 16:26:20

标签: java android microsoft-band

我一直在开发一款Android应用来跟踪全天的饮食情况。我们尚未决定使用哪些传感器,因此该应用程序能够连接到服务中的所有传感器并无限期地流式传输,具体取决于手机何时决定清理应用程序的资源。在可靠性测试中我注意到的是,加速度计和陀螺仪在中等或高频流动时,在两到三分钟后切断。我已经实现了一个超时线程,它检查最后收到的加速度或陀螺仪数据(取决于它们是否应该是流式传输),如果它们停止流式传输则重新注册新的侦听器。是否有其他人有此问题和/或是否有人建议采用电池密集度较低的可靠acc / gyro流媒体方式?

总结:

  • 注册的加速度计和陀螺仪听众在2-3分钟后停止接收数据
  • 仅在中速和高频设置下流式加速/陀螺仪时才会发生这种情况,并且仅在加速度和陀螺仪都流式传输时才会出现
  • 无论其他传感器是否正在流式传输,都会发生这种情况
  • 发生这种情况时不会抛出任何异常
  • 订阅/取消订阅以及传入数据都在新线程上处理
  • 我有一个hacky超时线程,如果他们停止流式传输,则取消注册并注册新的accel / gyro侦听器

问题:

  1. 还有其他人遇到过这个问题吗?
  2. 使用新线程来处理导致侦听器未注册的数据是否存在问题(不太可能,因为其他数据以这种方式实现)?
  3. 是否有更好的(电池效率更高)方式检测未发生的事件并对其进行响应而不是让线程检查超时?
  4. 提前致谢!

2 个答案:

答案 0 :(得分:0)

四件事。

1)SDK上的Microsoft Band陀螺仪传感器数据包含加速度计数据,因此您永远不需要同时订阅这两种数据。

2)长时间订阅将大大消耗所连接频段的电池寿命,因此不建议。

3)Streaming要求与Microsoft Health的BandService的连接保持活动状态。如果该连接丢失,您将不再获取数据。 (可能这就是你的情况)

4)Microsoft拥有一个可能对您要执行的操作更有用的云API。 http://developer.microsoftband.com/cloudAPI

答案 1 :(得分:0)

您是否通过蓝牙将任何其他设备连接到手机?如果是这样,请尝试断开除Band之外的所有内容。

根据我的经验,让另一台设备配对并与手机通信会导致听众在没有通知的情况下关闭,通常需要重新启动应用或手机。我的手机同时从平板电脑和传感器收集数据,我发现如果我没有连接到平板电脑,传感器将持续超过2-3分钟。

希望这有帮助!