我注意到,當你在應用程序中斷開連接藍牙設備的iOS設備將繼續保持約10秒的連接。我試圖通過寫入一個特性來解決這個問題,該特性導致藍牙模塊取消與iOS設備的連接,但這不起作用(主要是因爲我更改了模塊,而iOS沒有看到更改,因爲我假設該設備被緩存在某處)。有沒有辦法讓代碼立即斷開連接?我目前使用的是快速命令 manager.cancelPeripheralConnection(peripheral)
。斷開時間爲iOS BLE
回答
不幸的是,沒有。告訴系統斷開外設的唯一方法是通過您已經使用的cancelPeripheralConnection
方法。但是,如果您調用此方法,則不一定意味着外設將斷開連接。
背景
在iOS整個BLE連接管理由操作系統維護。這意味着沒有單個應用程序「擁有」連接。所有BLE功能都是多路複用的,以允許多個應用程序訪問中央和外圍設備。例如,如果您已經安裝了可在後臺跟蹤心率傳感器數據的健身應用程序,那麼您也可以在應用程序中「連接」心率傳感器,但無法觸發真正的斷開連接只要健身應用程序保持連接。
你已經注意到該斷開延遲基本上是操作系統的優化。如果沒有應用程序與外設保持連接,它將等待一段時間(以避免不必要的連接/斷開週期),然後觸發藍牙芯片上的斷開連接。
希望有所幫助。
在iOS中,當你調用CBCentralManager方法cancelPeripheralConnection(CBPeripheral),它並不總是立即終止連接。作爲蘋果公司的文檔狀態:
Because other apps may still have a connection to the peripheral, canceling a local connection does not guarantee that the underlying physical link is immediately disconnected. From the app’s perspective, however, the peripheral is considered disconnected, and the central manager object calls the centralManager:didDisconnectPeripheral:error: method of its delegate object.
如果你有需要立即終止連接編程,說要騰出周邊將被另一中央設備相連,或與一個自己的安全層重置,則需要遵循在以下的StackOverflow線程描述的程序:
iOS 6 - Bluetooth LE disconnect
其是用於該應用發送自己的專有命令,告訴周通過正常手段斷開外圍設備(例如,「GAPRole_TerminateConnection」或「GAP_TerminateLinkReq」要麼 「LL_Disconnect」或「HCI_Disconnect [_ *]」,原因HCI_DISCONNECT_REMOTE_USER_TERM)。這總是起作用,並且由於連接監視超時而延遲而不是,因爲它是通知中央設備(即iOS)的正式斷開連接。監控超時(iOS中最多6秒; Android中默認20秒)僅在超出範圍時意外斷開連接或者外設斷開連接而不通知遠程設備時發揮作用,例如「LL_EXT_DisconnectImmed 「(僅在某些BLE外設實現中可用)。
- 1. 當BLE斷開連接時,IOS後臺在後臺運行
- 2. 不能斷開BLE連接
- 3. Windows BLE UWP斷開連接
- 4. Android BLE GATT斷開連接與設備斷開連接
- 5. Ble外圍設備已斷開連接
- 6. Skylink IOS問題,當斷開房間
- 7. BLE gattserver與iOS
- 8. BLE債券表iOS
- 9. iOS的BLE工具
- 10. 爲什麼fstream在使用標誌ios :: ate和ios :: out打開時被截斷?
- 11. 時間在Ubuntu服務器斷開
- 12. IBM Bluemix在某個時間斷開MqttAndroidClient
- 13. BLE寫入特性的ios
- 14. BLE iOS背景廣告
- 15. iOS - Scan BLE devies在後臺
- 16. BLE + ios虛擬串口?
- 17. Android:捕獲BLE連接失敗/斷開連接?
- 18. 如何延遲BLE中的斷開和重新連接過程?
- 19. 斷開連接後,Android BLE在後臺連接
- 20. Android BLE(藍牙低功耗)連接/斷開/重新連接
- 21. BT配對失敗後BLE斷開連接
- 22. IOS時間爲int分鐘
- 23. 爲iOS或OSX開發藍牙4.0 BLE應用程序的成本是多少?
- 24. 爲什麼BLE 4.2比BLE更快4.1
- 25. Android BLE快速連接和斷開連接以讀取1個特徵。有些BLE設備在快速連接斷開連接後停止播放
- 26. 通過使用開始時間和持續時間計算結束時間 - IOS
- 27. iOS - 不斷更新方法
- 28. 爲什麼時間不斷變化?
- 29. 選擇BLE廣播間隔
- 30. Ringing State Callkit斷開呼叫iOS
威爾具有BLE模塊解除強制操作系統丟棄連接,或將它仍然堅持呢? – Ubarjohade
理論上應該可以工作,但有一些問題:首先,iOS會嘗試自動重新連接一段時間(使用綁定/配對時)。其次,您必須考慮連接參數,特別是連接監視超時和從屬延遲。他們確定我何時連接被認爲是丟失。如果從外設側斷開連接,則根據上述參數,中央設備仍將顯示連接。請參閱以下鏈接獲取更多信息:https://devzone.nordicsemi.com/question/60/what-is-connection-parameters/。 –