在树莓派上创建iBeacon服务

3
我最近一直在尝试使用蓝牙低功耗(Bluetooth LE)技术,通过使用Bluez堆栈的在线教程之一,我成功将Raspberry Pi(树莓派)变成了iBeacon。
然而,当我使用App Store上可用的iOS应用程序测试iBeacon时,我发现我可以连接到iBeacons并请求它们的服务(至少某些应用程序是这样意图的)。
我的意图是广播一条消息,比如“Hello World”,以便我可以在自定义的iOS应用程序中看到它;但是由于iBeacons仅基于UUID概要广告位置数据,因此我陷入了困境。
根据上述iBeacon应用程序的行为,它们似乎尝试读取iBeacon的服务。因此,我想也许我可以在我的iBeacon中制作一个包含要广播的消息的服务,因此当iOS应用程序读取服务的描述/特征时,就可以找到该消息。
我不知道我所说的是否完全没有意义,但如果可能的话,我想知道如何在我的Raspberry Pi中创建这些服务。

2
您所描述的应该是可行的,但这将是一种定制的信标实现,而不是真正的 iBeacon -- iBeacon 不会报告服务特性或发送除其三部分标识符之外的任何内容。制作自定义蓝牙 LE 信标完全没有问题,只需了解它将无法与 iOS CoreLocation API 一起使用,但可以与其 CoreBluetooth API 一起使用。您需要学习一些如何在 Linux 上编程 BlueZ,以便您可以创建具有定义特性的真实服务。 - davidgyoung
@davidgyoung非常感谢您指引我正确的方向,我会调查一下并尝试按照那种方式去做。请将您的评论变成答案,这样我就可以接受它了,我认为其他人也会觉得有用。 - jonathanwiesel
1个回答

4
您所描述的应该是可行的,但这将是一种自定义信标实现,而不是真正的iBeacon——iBeacon不会报告服务特征或发送除其三部分标识符以外的任何内容。制作自定义蓝牙LE信标完全没有问题,只是需要明白它不会与iOS CoreLocation API配合工作,而是可以与其CoreBluetooth API一起使用。
您需要学习一些如何在Linux上编程BlueZ,以便可以创建具有定义特征的真正服务。

没有任何东西可以阻止一个使用iBeacon格式的数据包进行广告的设备同时具有服务。后者不会成为“iBeacon”机制的一部分,但它们也不会干扰它。 - Chris Stratton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接