繁体   English   中英

取消 BLE 外设连接 iOS 后无法重新连接

[英]Unable to reconnect after cancelling BLE peripheral connection iOS

在我的项目中,我成功连接到蓝牙 LE 外设并从该设备读取CBCharacteristic值。 我正面临一个问题。 如果用户愿意,我需要断开外围设备并重新连接设备。

我正在使用以下步骤。

1. 对于断开连接:我正在调用centralManager?.cancelPeripheralConnection(peripheral) 此调用成功完成调用委托func centralManager(central: CBCentralManager, didDisconnectPeripheral peripheral: CBPeripheral, error: NSError?)

2. 重新连接:我开始扫描外围设备,就像我在应用程序启动centralManager!.scanForPeripheralsWithServices(nil, options: nil)时所做的那样

但是这个调用从来没有调用委托func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber)在那里我尝试连接 BLE 发现的外围设备。

我的问题是在 iOS 中断开 BLE 外设并重新连接的最佳实践是什么。 我做错了什么吗?

这不是重新连接到 BLE 的正确方法。

根据Apple 文档

重新连接到外围设备

使用 Core Bluetooth 框架,您可以通过三种方式重新连接到外围设备。 你可以:

  1. 使用
    retrievePeripheralsWithIdentifiers:方法。 如果您要查找的外围设备在列表中,请尝试连接到它。 这次重连
    选项在检索已知外围设备列表中进行了描述。
  2. 使用retrieveConnectedPeripheralsWithServices:方法retrieveConnectedPeripheralsWithServices:当前连接到系统的外围设备列表。 如果您要查找的外围设备在列表中,请连接
    它本地到您的应用程序。 此重新连接选项在
    检索已连接外设的列表。
  3. 使用scanForPeripheralsWithServices:options:方法扫描并发现外围设备。 如果找到,请连接到它。 这些步骤在发现正在广播的外围设备并在发现后连接到外围设备中进行了描述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM