最近我开发了一款适用于BLE设备的APP,我已将大部分选项和功能添加到我的APP中。它可以扫描设备,显示列表,然后用户可以选择要连接的设备。我的问题是我的代码只能连接到一个BLE;如果用户想要连接到其他设备,则必须与连接的设备断开连接。我可以使用任何选项或方法来解决这个问题吗?
答案 0 :(得分:3)
如果你想要一些实际的帮助,你应该发布代码,但我可以告诉你,你的问题只是一个设计问题。很明显,您没有以可扩展的方式实现CBCentralManager
方法,无论是底层连接还是用户界面。我可以告诉你,从我的应用程序的直接经验来看,目前的Apple限制是在任何给定时间的10个蓝牙低功耗连接(尽管人们可能会尝试声称不同)。然而,虽然系统能够处理10,但BTServer
进程(Apple的蓝牙进程)开始出现这么多连接并经常崩溃。
您需要重新考虑设计CBPeripheral
和CBCentralManager
类的实现方式。确保它们没有连接到特定的外围设备,只是您可能遇到的外围设备的实例。进行一些设计更改,您应该能够解决问题。
答案 1 :(得分:0)
我不知道您的具体情况,但我知道可以连接到多个BLE设备,因为我目前正在Linux中使用Bluez堆栈。但是,BLE硬件在可以连接的设备数量方面有所不同,因此可能存在仅允许一个连接的某些硬件。我有一个允许最多3个连接的加密狗和另一个允许最多7个连接的加密狗。当你尝试进行额外的连接时,它会自动删除其中一个连接以创建新连接。