1

我有一个 BLE 设备,我正在编写一个与之配对的应用程序。我可以毫无问题地发现并连接到设备。但是,如果我已连接并拉动并重新插入 BLE 设备上的电池,我会收到didDisconnectPeripheral回调,但didConnectPeripheral即使我仍在扫描,我也永远不会收到另一个。我也试过打电话retrieveConnectedPeripheralsWithServicesretrievePeripheralsWithIdentifiers但这些都没有返回任何东西。

重启 BLE 设备的电源后,如何可靠地重新连接?

4

1 回答 1

1

一旦外围设备断开连接,您就可以发出另一个连接 - 一旦设备再次可见,iOS 将自动重新连接到设备并调用您的didConnectPeripheral:委托方法

-(void) centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error {
    NSLog(@"Disconnected from peripheral");
    [central connectPeripheral:peripheral options:nil];
}

无需重新扫描/重新发现外围设备。

您可能需要更全面的实现来更新 UI 等。

这是一些连接到外围设备并显示供应商信息的示例代码 - https://github.com/paulw11/BTBackground

于 2014-12-23T20:50:34.900 回答