2014-01-17 63 views
3

我一直在使用蓝牙LE挣扎了很长时间,我可以成功地将Raspberry Pi变成iBeacon,其中包括使用Bluez协议栈的许多在线教程之一。在Raspberry Pi中创建iBeacon服务

但是我注意到,当用App Store中提供的iOS应用程序测试iBeacon时,我可以连接到iBeacons并请求其服务(或者至少这是某些应用程序的意图)。我的意图是广播一条消息,让我们说'Hello World',这样我就可以在一个自定义的iOS应用程序中看到它;然而,由于iBeacons仅通告基于UUID配置文件的位置数据,我被卡住了。

基于上面提到的iBeacon应用程序的行为,他们似乎试图阅读iBeacon的服务,我想我可以在我的iBeacon中制作一项服务,它可以包含我想广播的消息, iOS应用程序读取服务的描述/特征可能有消息。

我不知道我说的是完全的废话,但如果真的有可能,我想知道如何在我的Raspberry Pi中制作上述服务。

+2

你所描述的应该是可能的,但它将是一个自定义的信标实现,并且不是真正的iBeacon - iBeacons不报告服务特性或发送除三个部分标识符以外的任何其他信息。制作一个自定义的蓝牙LE信号灯是完全正确的,只要明白它不适用于iOS CoreLocation API,而是使用其CoreBluetooth API。您需要了解Linux上的BlueZ程序如何执行此操作,以便您可以制定具有定义特征的实际服务。 – davidgyoung

+0

@davidgyoung非常感谢你指点我的方向,将会对此进行调查,然后尝试这样做。让你的评论成为一个答案,以便我可以接受它,我认为其他人可能会觉得这很有用。 – jonathanwiesel

回答

4

你所描述的应该是可能的,但它将是一个自定义的信标实现,并且不会是真正的iBeacon - iBeacons不会报告服务特性或发送除三个部分标识符以外的任何其他信息。制作一个自定义的蓝牙LE信号灯是完全正确的,只要明白它不适用于iOS CoreLocation API,而是使用其CoreBluetooth API。

您需要了解Linux上的BlueZ程序如何执行此操作,以便您可以制定具有定义特征的实际服务。

+0

没有任何东西可以阻止设备通过*也*具有服务的iBeacon格式的数据包进行广告。后者不会成为“iBeacon”机制的一部分,但它们也不会干涉它。 –