Ios 取消可取消的外围设备连接后无法重新连接

Ios 取消可取消的外围设备连接后无法重新连接,ios,swift,bluetooth,bluetooth-lowenergy,core-bluetooth,Ios,Swift,Bluetooth,Bluetooth Lowenergy,Core Bluetooth,在我的项目中,我成功地连接到蓝牙LE外围设备并从该设备读取CBCharacteristic值。我面临一个问题。如果用户愿意,我需要断开外设并重新连接设备 我正在使用以下步骤 1。用于断开连接: 我打电话来 centralManager?。取消外围设备连接(外围设备)。调用委托func centralManager(中心:CBCentralManager,didDisconnectPeripheral:CBPeripheral,错误:NSError?)成功完成此调用 2。重新连接:我开始扫描外围设

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

我正在使用以下步骤

1。用于断开连接: 我打电话来
centralManager?。取消外围设备连接(外围设备)
。调用委托
func centralManager(中心:CBCentralManager,didDisconnectPeripheral:CBPeripheral,错误:NSError?)成功完成此调用

2。重新连接:我开始扫描外围设备,就像启动应用程序时一样
centralManager!。扫描外围设备和服务(无,选项:无)

但此调用从不调用委托
func-centralManager(central:CBCentralManager,didiscoverperipheral:CBPeripheral,advisementdata:[String:AnyObject],RSSI:NSNumber)
,我尝试在其中连接已发现的外围设备


我的问题是,在iOS中断开可编程外围设备并重新连接它的最佳做法是什么。我做错了什么吗?

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

Per:

重新连接到外围设备

使用核心蓝牙框架,有三种方法可以 重新连接到外围设备。你可以:

  • 使用
    检索外围设备标识符:
    方法。如果你是外设 正在查找列表中的,请尝试连接到它。此重新连接
    选项在检索已知外围设备列表中描述
  • 使用
    retrieveConnectedPeripheralsWithServices:
    方法。如果您要查找的外围设备在列表中,请连接
    它在本地安装到您的应用程序。此重新连接选项在
    正在检索已连接外围设备的列表
  • 使用
    scanforperipherswithservices:选项:
    方法。如果你找到了, 连接到它。这些步骤在“发现外围设备”中进行了描述 正在播放广告并连接到外围设备的设备 在你发现它之后

  • 谢谢@Abhinav的回答。我正在检查所有3种可能的重新连接方式。我是否使用正确的呼叫从BLE设备断开连接?是的,断开连接都很好。我分享的链接是处理可编程设备的最佳实践。信息量很大。我建议你去一次。。。肯定会增加你的知识库。为了其他人的利益,你能接受这个答案吗?请让我检查一下检索外围设备识别器:'对我没有帮助。我之前正在调用选项3扫描外围设备服务:选项:。目前正在检查选项2。