ios - 核心蓝牙 : What's the correct way of retrieving multiple disconnected peripherals?

标签 ios iphone bluetooth-lowenergy core-bluetooth cbperipheral

在我目前正在从事的项目中,我正在使用单例类来处理所有与蓝牙相关的任务。它是 CBCentralManager对象处理与多个外围设备的连接。当CBPeripherals被发现,我让用户选择外围设备并连接到它。建立连接后,他/她可以选择另一个可用的设备,因此连接是按顺序完成的。

但是在检索连接时,我得到了一组检索到的外围设备。检索多个外围设备的最佳做法是什么?一次创建到外围设备的多个连接请求是否可以,还是应该按顺序完成?

现在我正在遍历检索到的外围设备并尝试与它们连接而无需等待。它可以工作,但需要一些时间,尽管我连接的 ble 硬件可能有问题。

更何况我火法retrievePeripheralsWithIdentifiers:它没有给我委托(delegate)回调,所以我正在检索 centralManager:didDisconnectPeripheral:error:方法,我在哪里
NSArray *retrieved = [self.centralMgr retrievePeripheralsWithIdentifiers:identifiers];
然后遍历检索到的对象。

它有效,但它是正确的方法吗?

最佳答案

在 iOS 7 中更新了核心蓝牙 API。 retrievePeripheralsWithIdentifiers:直接返回你请求的外设,不再有回调。

经验法则是,如果您有一个 CBPeripheral 对象,那么您可以重用它。无需再次检索。关于您当前使用 API 的方式,您的问题有点令人困惑,但是当您有疑问时,可以引用 Core Bluetooth Programming Guide .

只有一个异常(exception):如果 Core Bluetooth 框架重新启动或重新上电,则 CBPeripheral 对象无效。重复使用会导致错误。在这种情况下,必须获得新的实例。

关于ios - 核心蓝牙 : What's the correct way of retrieving multiple disconnected peripherals?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22908726/

相关文章:

iphone - UVIews 缩放 UIScrollview 时的比例

iphone - 如何在 iOS 上使用 NSLog 打印字符串常量

iphone - 在我的 iPhone 应用程序中, View 未相对于设备方向旋转

iPhone 5 闪屏显示不正确 - Phonegap

iOS - CoreBluetooth didDiscoverPeripheral 仅调用一次

android - Nexus 9 上的蓝牙 LE 连接问题

ios - iOS自定义按钮标题模糊

ios - 根据类型隐藏 iOS 推送通知

Android:低功耗蓝牙 GATT 配置文件

ios - 致命索引错误 ios