【问题标题】:Accessing a Bluetooth "ConnectedThread" from various activities从各种活动中访问蓝牙“ConnectedThread”
【发布时间】:2017-01-21 09:27:30
【问题描述】:

我创建了一个蓝牙管理器,很像this 示例中的那个。该对象在连接活动中实例化,通过单击“连接”按钮从主活动到达,该按钮提供可选设备的 ListView。到目前为止效果很好。

我现在已连接并运行了 BluetoothManager.ConnectedThread 并设置了流。我现在希望能够在运行时从/向各种其他活动发送蓝牙数据。例如,我想在图表活动运行时绘制实时值。

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

【问题讨论】:

    标签: android multithreading bluetooth handler


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的。我将查看服务并回复您。我认为在这种情况下不需要服务,因为 Android Developers Example 使用了非常相似的东西。
    • 这取决于您的需求、连接的持续时间等。但根据我的经验,我认为这样处理会更容易。
    • 只是想回来并将其标记为已回答。我花了一些时间研究服务,并确实使用命令模式来运行它。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-07-29
    • 2017-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-29
    相关资源
    最近更新 更多