2013-03-12 103 views
3

我正在尋找一種方法,以便能夠在範圍內跟蹤使用我的另一個啓用BTLE的iOS設備。基本上,一臺設備必須記錄它的地理位置信息,然後使用BTLE定期發送到其他設備。使用BTLE跟蹤移動設備

我該如何做到這一點?一般來說,我一直無法找到關於如何通過BTLE發送和接收消息的更多信息,因此,該類別的任何幫助都會很好。我已經見過this的答案,但它對我沒有多大幫助,而且我想知道自那以後有什麼變化。

如果不能通過蘋果的內置框架,你知道任何外部的可以允許這麼做嗎?

+3

看看Apple的[BTLE Central Peripheral Transfer](https://developer.apple.com/library/ios/#samplecode/BTLE_Transfer/Introduction/Intro.html#//apple_ref/doc/uid/DTS40012927)示例,其中展示瞭如何通過LE在兩臺iOS設備之間傳輸數據(但需要iOS 6.0)。您只需製作一個自定義配置文件即可將您的位置座標作爲屬性傳輸。 – 2013-03-12 23:06:55

+0

你知道BLE是如何工作的嗎?如果沒有,我會這樣說:玩兩個iDevice與應用程序LightBlue(AppStore上的應用程序,它可以「取代」溫度計)。然後使用溫度傳感器(來自Apple的樣品)和LightBlue。一旦您瞭解了BLE的工作原理,您就可以瞭解Brad先前給出的樣本。當我說play時,並不意味着你不需要瀏覽BLE文檔和CoreBluetooth.framework的Apple文檔,但是你可以測試。 – Larme 2013-03-12 23:45:16

回答

4

長,很長很長,longgg長話短說,但在這裏亞去:

在一個iOS設備上,採用兩種CBCentralManager和CBPeripheralManager。 CBCentralManager負責連接外部外圍設備並維護該連接。 CBPeripheralManager將用於從iOS設備讀取/寫入使用外設的內容。

在其他iOS設備上,只採用CBPeripheralManager。您需要將所有服務和特性添加到GATT配置文件中規定的CBPeripheralManager中。查看developer.bluetooth.org。這些服務和特性對於從一個設備連接到另一個設備是必需的。

除了gatt特性和服務之外,您還需要添加一個自定義服務,其中包含存儲位置數據的特性。

退房的文檔,但對於CBPeripheralManager特別是在你需要利用

-(void) peripheralManager:(BLEPeripheralManager*)mgr requiresResponseToWriteRequests:(NSArray*)requests; 

-(void) peripheralManager:(BLEPeripheralManager*)mgr requiresResponseToReadRequest:(CBATTRequest*)request; 

爲了通過devices..Sorry之間的位置數據的簡要概述,但是寫太多太快了。

+0

簡短但很有用。我不知道它是否像我想要的那樣工作,直到我們完成,但這樣的大綱是我需要的。謝謝! – NeonBlueHair 2013-03-15 03:28:25

+0

好吧,我現在正在處理它,但似乎有問題。兩個設備是否可以在同一個連接中互相發送和接收數據?現在似乎只有一個人需要廣播,而另一個人則需要獲取數據。我想要做的是讓他們都能夠同時跟蹤對方。或者,我必須通過快速更新連接並更改設備的中央/外設狀態來做到這一點? – NeonBlueHair 2013-04-04 01:04:45

+0

哦,等一下,我忘了你的問題了。所以你希望兩個人都能寫對方的位置座標? – 2013-04-04 01:52:41