连接到Xcode中的多个蓝牙LE设备

问题描述:

最近我开发了一个与BLE设备一起工作正常的应用程序,我向APP添加了大部分选项和功能。它可以扫描设备,显示列表,然后用户可以选择要连接的设备。我的问题是我的代码只能连接到一个BLE;如果用户想连接到其他设备,则必须从连接的设备上断开连接。有什么选择或方法可以用来解决这个问题吗?连接到Xcode中的多个蓝牙LE设备

我不知道您的具体情况,但我知道可以连接到多个BLE设备,因为我目前正在使用Bluez堆栈在Linux中执行此操作。但是,BLE硬件在多少设备可以连接方面有所不同,因此可能存在一些只允许一个连接的硬件。我有一个允许多达3个连接的加密狗,另一个允许多达7个加密狗。当您尝试进行其他连接时,它会自动删除其中一个连接以创建新连接。

如果你需要一些实际的帮助,你应该发布代码,但我可以告诉你,你的问题只是一个设计问题。看起来很明显,您还没有以可扩展的方式实现您的CBCentralManager方法,无论是底层连接还是用户界面。我可以从我的应用程序的直接经验告诉你,在任何给定的时间,当前的Apple限制是10个蓝牙低功耗连接(尽管人们可能会试图声称不同)。然而,虽然系统能够处理10个,但是这个进程(Apple的蓝牙进程)开始出现这种连接并频繁崩溃的问题。

您需要重新考虑您设计实现CBPeripheralCBCentralManager类的方式。确保它们没有连接到特定的外围设备,只是您可能遇到的外围设备的实例。做一些设计更改,你应该能够解决你的问题。