2014-06-19 40 views
0

我正在開發一個iOS應用程序,它連接到某種類型的BLE設備,但我正在寫一個房間裏的代碼,這個房間裏有20多個這樣的設備,它們都在開機。我一直髮現,早上我可以連接到我的個人設備,但是隨着時間的推移,我無法連接到我的設備,就好像20多個其他設備已經以某種方式喚醒並阻止了我的信號。沒有人使用這些設備的大部分;他們只是坐在桌子上。這是一個已知的錯誤?蘋果是否正在研究它?iOS:當20多個這樣的設備在房間裏時,連接到BLE設備?

回答

0

是否所有的設備廣告? 如果他們用20ms的時間進行廣告宣傳,那麼可能很難全部聽到。在所有設備之間共享「僅」3個廣告頻道。連接發生在相同的通道上(外圍設備在自己的廣告之後偵聽是否有人想要連接)。

它與Apple CoreBluetooth無關。根據我的經驗,CoreBluetooth可以在連接成功後處理大約20臺設備,並且活動已移至流量通道。

1)嘗試使用較慢的廣告時間間隔。如果您的應用處於前臺,這應該可以正常工作。 2)使用BLE嗅探器(TI USB加密狗很好),看協議級別的連接是否失敗,那麼它不是CoreBluetooth的錯誤。 3)只在需要時以快速間隔做廣告,或者你確實需要快速發現。

作爲一個經驗法則,蘋果在後臺模式下最多需要55個廣告才能看到一個設備,當它是唯一可見的設備時。因此,如果您真的需要大約1.1秒的發現時間,那麼您可能需要20ms的廣告時間間隔,否則使用100ms甚至更長的時間(請參閱蘋果廣告時間間隔指南,以確定優化發現的確切數量)。100ms可提供更多容量並且不會太差。 1-2s提供更長的電池使用時間,如果您的應用在後臺,則會在1-2分鐘內找到。對於商場等的眼睛信標來說,這可能相當不錯,而在較小的區域內可能需要100-200毫秒。

相關問題