2015-04-05 48 views
0

我正在創建一個不遵循Apples iBeacon規範的BLE Beacon。原因是「燈塔」將是一個arduino設備,應用程序也應該能夠溝通並指示它執行操作。這在iOS上支持嗎?我聽說iOS 8的傳言通過藍牙鎖定了通用設備廣告。在iOS中使用通用BLE信標?

在此先感謝。

回答

1

是的,您可以使用CoreBluetooth API來做到這一點,但根據您使用的是哪種類型的藍牙LE廣告,存在一些限制。

1.廠商廣告

您可以閱讀使用CoreBluetooth製造商廣告(最多24個字節)的所有字節,但只有當應用程序在前臺。在後臺,你將不會有任何回調。這通常與第二個iBeacon廣告搭配,可以在iOS的後臺將應用程序喚醒。對於這種類型的廣告的一個例子,請參見AltBeacon specification.

2. GATT服務廣告

甲GATT服務廣告檢測將由CoreBluetooth被髮送到一個應用程序,即使應用在後臺,提供該應用程序專門尋找信標的GATT服務UUID。這種方法的缺點是數據有效載荷通常僅限於2字節服務UUID之後的18個字節。

其他信息

在這兩種廣告類型的情況下,可以連接到使用關貿總協定的設備,讀取和寫入數據。但請注意,一旦連接設備,通常會停止發佈廣告作爲燈塔。

上述兩項工作都與iOS 8中描述的一致。很難預測未來,但Apple似乎不太可能鎖定上述兩種用例,因爲它們廣泛用於除信標之外的藍牙LE應用程序。

您可以在this blog post中看到閱讀這些廣告的基本步驟。雖然這篇文章是專門介紹Apple如何過濾出iBeacon廣告,但如果您製作自己的定製製造商廣告,它將允許您按照文章所述讀取字節。

爲了完整起見,上述兩種廣告類型均可由Android設備在前景和背景中選取。

+0

問題,這些解決方案不要求CoreBluetooth有掃描模式嗎? – rclai 2016-01-20 16:14:00