2013-11-01 25 views

回答

1

iBeacon是一種接近技術,不適用於數據交換。但是,由於藍牙堆棧將作爲信標(因此它可以通告其鄰近UUID)在iPhone上處於活動狀態,因此可以使用Core Bluetooth連接到信標並在設備之間交換數據。

9

標準iBeacon是傳輸設備,它們可以被移動設備看到,但實際上並沒有「連接」到它們或交換數據。

但是,如果您在所有設備上都有一個應用程序以及用於執行數據傳輸的Web服務,則仍然可以執行您所要求的操作。這將允許設備A和B在他們附近時彼此檢測並交換數據。具體方法如下:

  1. 你上設備A和B交替作用之間的應用程序作爲iBeacon顯示(廣告與特定應用標識符和電話特定的標識符存在下)和測距iBeacon顯示信號,包括應用特定的標識符。
  2. 在其測距週期中,設備A上的應用程序將檢測到設備B的iBeacon傳輸,其中包括您的應用程序標識符和設備標識符B.
  3. 然後,應用程序A對網絡進行「寫入」呼叫帶有「A」來源和「B」來源的服務以及要傳輸的任何數據,例如「設備A向設備B問好」。
  4. 該應用程序還會定期對Web服務進行「讀取」調用。在這個例子中,設備B將讀取發往B的任何信息,並且網絡服務將返回記錄,設備A已經向它發送了帶有數據「設備A向設備B問好」的消息。

因爲兩個電話上也運行相同的過程,所以這種通信可能發生在兩個方面。

+0

因此不可能做廣告和測距,然後切換到藍牙數據傳輸模式並返回?因爲使用藍牙而不是Web服務傳輸數據會更酷...... – ErdyMurphy

+0

當然,您也可以使用CoreBluetooth在電話之間直接傳輸數據而不是Web服務。設置它會複雜得多,因爲你必須爲每個應用程序添加第三個或第四個週期。這些額外的週期將使每個應用程序進入外設和/或中央模式以發送和接收藍牙數據。但是,使用藍牙傳輸來管理此項計時對於多個設備來說非常困難,因爲您無法在發送藍牙數據時作爲iBeacon進行廣播。 – davidgyoung

1

它是否特別需要使用iBeacon技術?我問的原因是,通過閱讀您對過程的描述,您可以使用iOS 7的Multipeer Connectivity實現相同的功能。它能夠抽象出連接2個iOS設備的所有技術複雜性,無論接口如何,無論是WiFi還是藍牙。我已經設法使用MCNearbyServiceBrowserMCNearbyServiceAdvertiserMCSession類來構建類似的東西。

+0

是否有可能首先使用iBeacon檢測2個設備彼此之間的距離,然後基於使用多層連接的鄰近交換數據來檢測兩個設備之間的距離? – raaz

+0

是的,你可以做到這一點,有關iOS 7的教程,Tutoials書籍,CoreLocation章節的新內容:) – rustylepord

相關問題