通过各种活动访问蓝牙 "ConnectedThread"

Accessing a Bluetooth "ConnectedThread" from various activities

我创建了一个与 this 示例中的蓝牙管理器非常相似的蓝牙管理器。该对象在连接 activity 中实例化,通过单击 "Connect" 按钮从主活动访问,该按钮提供可选设备的 ListView。目前效果很好。

我现在已连接并设置了 BluetoothManager.ConnectedThread 运行 和流。我现在希望能够在 运行 时发送蓝牙数据 from/to 各种其他活动。例如,当图表 activity 为 运行.

时,我想绘制实时值图表

据我所知,将通过 Handler 将数据从 ConnectedThread 推出,这对我来说是一个新话题。我不清楚他的其他活动如何访问 ConnectedThread 的 write() 函数。

首先,尽管单例可能是一个解决方案,但 android Service 的目的就是为了这个目的,因为这些元素可以在你的时候保持 运行 UI 出来了。所以我的建议是创建一个粘性服务然后你有两个选择:

  • 使用 activity 和 Service 之间的处理程序处理数据。也许如果您对 Handler api 不太熟悉,这对您来说需要一些时间。在官方文档的this示例中,您还可以查看如何使用处理程序。
  • 创建绑定服务,您可以从活动绑定到该服务并在需要时发送一些数据。 Here你有绑定服务的官方信息

您可以查看 this 教程以获取有关处理程序的更多信息。