2012-11-08 84 views

回答

12

當您斷開與cancelPeripheralConnection設備的連接時,將調用didDisconnectPeripheral委託方法。但是從iOS 6.0開始,設備保持連接大約40-50秒(或更多),因此在該時間段內將不會調用didDiscoverPeripheral。如果您想再次「發現」,只需撥打retrieveConnectedPeripherals方法即可獲得參考文獻didRetrieveConnectedPeripherals

但是,最好的解決方案是保存設備的UUID並使用它來重新連接retrievePeripherals方法。這將調用didRetrievePeripherals,您可以重新連接connectPeripheral。這是重新連接到設備的最快方式,在這種情況下不需要掃描。

+0

我正在尋找相同的EAAccessory框架。可能嗎?如果有的話,誰能指導我「如何」?提前致謝...:) –

2

當您使用scanForPeripheralsWithServices進行掃描時,它通常只會通知您一次特定設備地址。您可以通過指定選項CBCentralManagerScanOptionAllowDuplicatesKey將其更改爲報告重複項。或者您可以讓您的應用程序檢測到其他設備使用超時斷開連接,然後重新啓動掃描。

2

在CoreBluetooth中所有的管理都是由應用層完成的。 在你的情況下,我會做的是聽取斷開事件,而不是在同一事件,重新連接外設。 連接方法是一種便宜的連接方法,可確保您在重新連接至設備時連接到設備。

請注意,如果您明確斷開設備,則收到相同的斷開連接事件,但您不必調用reconnect方法。

相關問題