在使用藍(lán)牙相關(guān)庫的時(shí)候,遇到一個(gè)問題。
CBCentralManager連接設(shè)備成功,但是didConnectPeripheral和didFailToConnectPeripheral都沒有調(diào)用。檢查過很多遍,delegate沒有問題,CBPeripheral也沒有被釋放掉(網(wǎng)上很多提及),地址是同一個(gè)。
找了很久,后來發(fā)現(xiàn)我使用的Framework中也有一個(gè)CBCentralManager(下面簡稱mgrA)。我自己在項(xiàng)目中也寫了一個(gè)CBCentralManager(下面簡稱mgrB)。
我的操作是:用mgrB掃描,掃描到設(shè)備CBPeripheral,然后用mgrA去連接設(shè)備。結(jié)果不管是mgrA還是mgrB的didConnectPeripheral和didFailToConnectPeripheral都是不會調(diào)用的。必須是mgrA掃描,然后使用mgrA自己去連接,或者mgrB掃描,mgrB連接才會有反應(yīng)。
這次是因?yàn)槭褂昧硕嗉业男酒?,涉及到多家的庫。有些廠家有封裝ADK,有些沒有,需要自己寫。本來是想統(tǒng)一用自己寫的CBCentralManager來掃描設(shè)備,接下來再根據(jù)需要調(diào)用對方的庫方法,沒想到還有這樣的坑,今后還是要多多注意。