2013-03-12 104 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