【发布时间】:2013-07-21 10:52:40
【问题描述】:
我有一个使用 CC2541 芯片组的蓝牙 4.0 (BLE) 设备,我通过 iOS 核心蓝牙框架与之交互。
当设备处于可发现/广告模式时,我可以使用 Core Bluetooth 成功连接到设备,并且可以毫无问题地与设备传输数据。
我维护了一组我已连接的设备 UUID,我现在正尝试使用以下方法再次连接到其中一个设备:
CBCentralManager
- (void)retrievePeripherals:(NSArray *)peripheralUUIDs
调用此函数似乎有效,并且我收到了对以下函数实现的回调:
CBCentralManagerDelegate
- (void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals
我尝试连接的设备是在传递给此函数的外围设备数组中列出的唯一一个外围设备。
当我尝试使用我的连接函数(如下所示)连接到此设备时,连接将不会启动,并且我在 CBCentralManagerDelegate 或 CBPeripheralDelegate 上都没有收到任何回调。
- (void) connectPeripheral:(CBPeripheral *)peripheral {
NSLog(@"Connecting to peripheral with UUID : %s\r\n",[self UUIDToString:peripheral.UUID]);
activePeripheral = peripheral;
activePeripheral.delegate = self;
[CM connectPeripheral:activePeripheral options:nil];
}
如上所述,如果我首先将设备置于可发现/广告模式,我可以使连接成功,但这不是一个可行的解决方案。设备必须允许重新连接,而不会将其置于可发现模式。
我确实注意到这个问题的答案CoreBluetooth: What is the lifetime of unique UUIDs 建议我需要将 BLE 设备与 iOS 设备配对/绑定,但这可能取决于 BLE 芯片组,我正在使用的设备是 CC2541。任何关于如何与设备配对的建议都是最有用的,或者这是否是必要的步骤。我曾尝试观看WWDC 2012: Advanced Core Bluetooth,这可能会给我一些帮助,但由于 Apple 在星期四遭到黑客攻击,我无法访问我的帐户来观看视频。
如果需要更多详细信息,请告诉我。蓝牙设备稳定,但内部正在开发中。如果可能需要更改固件以协助配对过程,我可以将此信息传递给电子团队。
【问题讨论】:
标签: ios bluetooth core-bluetooth bluetooth-lowenergy