簡體   English   中英

重新啟動后連接到藍牙外圍設備

[英]Connect to bluetooth peripheral after reboot

重新啟動手機后,我嘗試重新連接外圍設備。

我正在使用位置更新回調在后台啟動BLE連接過程。 ble堆棧已在后台正確初始化(發送了CBCentralManagerStatePoweredOn事件)

外圍設備上的“連接”已啟動,但未建立連接...

重啟后是否有重新連接設備的想法?

當您說外圍設備上的“連接”已啟動時,是否表示您使用connectPeripheral手動連接:? 過去,我在iOS上的連接問題上苦苦掙扎,並注意到CoreBluetooth在內部必須避免許多競爭條件。 通常,我建議始終對CoreBluetooth回調之后發生的所有連接請求至少進行20ms的調度延遲。 這樣可以避免大多數比賽情況。 您可以自己進行測試,例如,通過設置掛起的連接,然后在外圍設備連接之前稍后調用cancelPeripheralConnection:。 當您收到didFailToConnect回調時,請立即再次調用connectPeripheral:。 現在,連接應處於“ limbo”模式,其中連接狀態為“正在連接”,但實際上外圍設備將永遠不會連接。 此時再次調用connect不會執行任何操作。

我不知道這是否是造成您問題的原因,但可能是原因。 同樣,在CentralManager狀態恢復后,我建議在開始與框架進行交互之前,讓框架“停頓”一秒鍾左右。

另一重要的事情是,直到獲得applicationDidFinishLaunchingWithOptions:AppDelegate的回調之后,您才可以重新啟動管理器。 更早地執行此操作可能會導致奇怪的行為。

請進行更多調查,如果仍有問題,請告訴我們。 我可能還有其他提示。 /安東

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM