2015-12-11 75 views
1

我想知道是否有可能通過coreBluetooth爲設備充當外設以及iBacons範圍的廣告服務,同時在後臺完成這兩項任務? 實質上是爲了信標的範圍,然後如果信標在範圍內。附近或。立即範圍更新由設備通告的服務的特徵。 我可以高興地完成測距任務,雖然我已經發現設備充當外設超薄設備的信息,但我認爲我可以管理它,但是由於背景功能限制反覆停止,我想知道這種情況是否可行在我花費大量時間試圖完成事實證明每個人都知道不可能的事情之前。我對Swift和iOS一般都很陌生,所以我花了很多時間去完成很多工作。任何建議將不勝感激。 謝謝集成iBeacon和coreBluetooth外設

回答

2

這是可能的,雖然在後臺有限制。

前景:

  • 正是你描述什麼是可能的。 iOS允許使用CoreBluetooth同時廣告Bluetooth LE服務,同時使用CoreLocation範圍爲iBeacon。

背景:使用CoreLocation的信標範圍內的API來僅5秒信標區域之後

  • iOS的限制背景的信標掃描首先檢測。您可以使用我撰寫here的博客文章中的技術將此五秒鐘的掃描時間延長至三分鐘。延長時間較長需要在Info.plist中添加一個位置背景模式,這可能會讓您的應用程序難以批准用於AppStore。

  • 藍牙LE服務在後臺廣告在iOS上不能像在前臺廣告一樣工作。它使用Apple專有技術將服務標識符合攏成一個較小的廣告數據包,該廣告數據包在所有宣傳藍牙LE服務的應用程序之間共享。這些可能不容易發現的非iOS的藍牙LE設備:

的CBAdvertisementDataLocalNameKey廣告鍵被忽略,並且周邊的本地名稱是不公佈。 CBAdvertisementDataServiceUUIDsKey通告密鑰的值中包含的所有服務UUID都放置在特殊的「溢出」區域中;它們只能被明確掃描它們的iOS設備發現。 如果所有正在發佈廣告的應用都處於後臺,則外圍設備發送廣告數據包的頻率可能會降低。

查看獲取更多信息的藍牙周背景執行方式here