[英]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 框架,您可以通過三種方式重新連接到外圍設備。 你可以:
- 使用
retrievePeripheralsWithIdentifiers:
方法。 如果您要查找的外圍設備在列表中,請嘗試連接到它。 這次重連
選項在檢索已知外圍設備列表中進行了描述。- 使用
retrieveConnectedPeripheralsWithServices:
方法retrieveConnectedPeripheralsWithServices:
當前連接到系統的外圍設備列表。 如果您要查找的外圍設備在列表中,請連接
它本地到您的應用程序。 此重新連接選項在
檢索已連接外設的列表。- 使用
scanForPeripheralsWithServices:options:
方法掃描並發現外圍設備。 如果找到,請連接到它。 這些步驟在發現正在廣播的外圍設備並在發現后連接到外圍設備中進行了描述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.