2013-10-17 19 views
7

我一直在尋找這個問題,但似乎沒有人看到它。CoreBluetooth反覆斷開

我有兩個iPad。其中之一就是始終處於前臺的藍牙外設。由於我對中央側更感興趣,因此我使得我的中央iPad背景能夠用於BLE中央。我的工作流程如下:

  1. 中央應用程序運行,並開始掃描
  2. 外圍發佈服務(或自帶範圍內)
  3. 中央設備連接到外設和停止掃描
  4. 外設停止廣告(或葉範圍)
  5. 中央設備斷開連接並開始掃描
  6. 無論中央處於前景還是後臺,都可以無縫執行步驟1-5

當我運行我的中央iPad應用程序時,步驟3和5每隔10秒重複一次,即使該服務正在整個時間進行廣告。這發生在前景和背景。

拔下,我得到這個錯誤:

Error occurred while disconnecting peripheral: The specified device has disconnected from us. 

爲什麼它保持斷開任何想法?如果沒有數據傳輸,CoreBluetooth是否清理連接?目前,我的中心正在對外圍特徵進行一次性閱讀。它不訂閱更新,因爲這些值是靜態的。 謝謝!

回答

7

就我而言,解決方案是訂閱特性,而不管該值是否爲靜態。看起來好像訂閱會使連接保持活動狀態,而如果讀取一次性值,框架將嘗試節省電池壽命並斷開連接,迫使您在執行另一次讀取或寫入之前手動重新連接。