簡體   English   中英

為什么有時我需要重新啟動iOS藍牙(使用系統按鈕)才能使我的中央管理器能夠成功連接?

[英]Why, sometimes, do I need to restart the iOS Bluetooth (using the system button) to make my central manager able to connect successfully?

我正在iOS和OS X Yosemite上開發一個應用程序,該應用程序在iOS上使用CoreBluetooth,在Mac上使用IOBluetooth。 iOS應用程序扮演“中心”角色,而Mac應用程序扮演“外圍”角色。

基本上,iOS應用(中央)開始掃描以查找外圍設備,當找到Mac廣告外圍設備數據時,中央將連接到它並發現其服務和特征。

我的問題是,有時我不知道為什么,iOS應用程序開始掃描以查找Mac廣告,當它找到它時(此步驟一直有效),它嘗試連接到該廣告,但從未成功。

為了使其能夠再次成功連接到外圍設備,我需要先關閉然后再通過iOS按鈕打開藍牙。

另一個奇怪的事情是:想象中心處於相同的情況(嘗試連接失敗)。 在OS X上,如果我單擊系統狀態欄中的“網絡”圖標(帶有Wifi符號),則它將顯示所有可用Wifi網絡的列表,當它作為“個人熱點”添加到我的iPhone中時,此時,中央設備(在iPhone上)設法連接到外圍設備(Mac)。

帶有可用iPhone熱點的Wifi菜單

有了這個問題,由於iPhone隨機將無法連接到Mac,因此應用程序的使用受到很大影響。

我花了很多天在互聯網(Google,Stackoverflow等)上找到類似的案例。 我閱讀了很多文章,並嘗試了很多操作,例如停止掃描並在10秒鍾后如果連接未成功就重新啟動掃描。

如果我的問題不清楚,請不要猶豫告訴我。 如果需要,我將對其進行更新。

在此先感謝您的幫助。 我真的需要找到一種方法來解決此問題。

我沒有答案(也沒有足夠的代表發表評論),但是幾個月來我一直遇到一個非常相似的問題。 扮演中心角色的我的iOS應用有時有時無法發現外圍設備(linux)上的服務,而這些服務只能通過重新啟動我的iOS設備上的藍牙無線電通過設置/藍牙來修復。 彈起藍牙無線電后,外設發現似乎運行良好。

我發現了兩種可重現的情況:(1)如果在我的外圍設備上我完全交換了要宣傳的服務(即更改服務UUID和所有特征),則iOS外圍設備將在掃描期間檢測到具有此新服務的外圍設備,但是服務發現失敗。 我發現外圍設備:didDiscoverServices被調用,但是此外圍設備的服務列表為空。 (2)如果在我的外圍設備上,我以任何方式修改了特性列表(添加一個新特性,然后刪除一個特性),iOS應用程序根本不會注意到此更改。 在特征發現期間,將顯示相同的特征列表(在修改之前)。 同樣,重啟iOS設備上的藍牙無線電似乎是解決此問題的唯一方法。

在發現新的外圍設備后,iOS似乎正在緩存BTLE外圍設備服務和特征,並且刷新此緩存的唯一方法是重啟藍牙無線電。

暫無
暫無

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

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