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