在Android中连接多个设备到蓝牙

4
到目前为止,我所知道的是你可以从你的安卓手机与多个设备进行通信。但我的情况是我想连接两个“相似”的设备。
据我了解,如果我需要连接两个设备,我需要使用不同的UUID,蓝牙聊天应用程序建议硬编码UUID。
现在的情况是,我正在为一个游戏编程,物理枪将通过蓝牙连接到手机上(以跟踪射击等)。好吧,在这里我可以要求枪供应商为所有枪硬编码UUID,并且手机每次只能连接1支枪...这很容易。
需求是,用户可能有多支枪!有人能告诉我如何管理这个问题吗?如果我为所有枪硬编码一个单一的UUID,那么我不确定如何连接多个枪。如果我没有在枪芯片中硬编码UUID,我该如何找到UUID来连接?
1个回答

7

UUID并不是唯一设备标识符;UUID是蓝牙服务发现协议使用的唯一标识符,用于识别蓝牙设备正在使用的协议。Bluetooth.org有一个常见UUID列表

假设您知道或可以控制枪支中的UUID(听起来您可以),那么您可以将手机设置为蓝牙服务器(使用与枪支相同的UUID)。枪支将使用相同的UUID作为客户端连接(我知道枪支可能没有使用Android,但那里有一些示例代码可能会有所帮助)。

当然,您可能需要翻转客户端/服务器模型以适应特定需求。您应该能够创建尽可能多的服务器和客户端线程(在硬件允许的连接设备数量限制内)。


为什么您认为普通客户端连接无法工作,我们必须在这种情况下使用BluetoothServerSocket - Prateek
使用蓝牙技术时,一个设备需要充当服务器,而其他设备则需要作为客户端。我的建议是将手机作为服务器,将枪支作为客户端。当然,您的具体用例可能会有所不同。 - Bryan Herbst
我也有类似的用例,但我只想确认将手机作为服务器是否提供了同时与其他蓝牙硬件设备传输数据的功能。如果您能提供一个具体的例子,那将非常有帮助。 - Prateek
Android 蓝牙文档 中有一些示例,可以为您提供一个良好的起点。 - Bryan Herbst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接