didConnectPeripheral 不调用

在使用蓝牙相关库的时候,遇到一个问题。

CBCentralManager连接设备成功,但是didConnectPeripheral和didFailToConnectPeripheral都没有调用。检查过很多遍,delegate没有问题,CBPeripheral也没有被释放掉(网上很多提及),地址是同一个。

找了很久,后来发现我使用的Framework中也有一个CBCentralManager(下面简称mgrA)。我自己在项目中也写了一个CBCentralManager(下面简称mgrB)。
我的操作是:用mgrB扫描,扫描到设备CBPeripheral,然后用mgrA去连接设备。结果不管是mgrA还是mgrB的didConnectPeripheral和didFailToConnectPeripheral都是不会调用的。必须是mgrA扫描,然后使用mgrA自己去连接,或者mgrB扫描,mgrB连接才会有反应。

这次是因为使用了多家的芯片,涉及到多家的库。有些厂家有封装ADK,有些没有,需要自己写。本来是想统一用自己写的CBCentralManager来扫描设备,接下来再根据需要调用对方的库方法,没想到还有这样的坑,今后还是要多多注意。

你可能感兴趣的:(didConnectPeripheral 不调用)