我正在尝试更多地了解新的Apple iBeacon协议及其如何应用于其他设备。
我已经看到协议本身已经进行了逆向工程:http://developer.radiusnetworks.com/2013/10/01/reverse-engineering-the-ibeacon-profile.html这是个好消息,但我对该协议还有一些问题。
协议是否设计为允许自定义文本消息发送到接收方客户端?比如“欢迎来到我的店铺”,而不是靠近某个灯塔?
我可以看到很多其他的SO问题,但我对于将该文本(如Hex)注入协议的位置感到有点困惑。
What is the iBeacon Bluetooth Profile
Use BlueZ Stack As A Peripheral (Advertiser)
看起来协议被设置为仅真正广播UUID和主要/次要集的信标,然后客户端应用程序需要执行某些操作。但是我希望它能更多地反映出一种自定义信息,例如“进入免费咖啡”或类似的东西......是否可以使用iBeacon协议,或者我是否需要使用标准蓝牙LE? / p>
答案 0 :(得分:3)
除了三部分标识符(UUID,Major,Minor)和发射机功率校准值之外,标准iBeacons不会传输任何信息。您无法让他们传输自定义短信。
您可以按照建议使用较低级别的蓝牙LE,但无论哪种方式,您都必须构建一个可以识别来自任何类型信标的信号的自定义应用程序。由于您必须拥有自定义应用程序,因此您可以轻松处理映射标识符到文本消息。像这样:
iBeacon identifiers (UUID Major Minor) Text Message
---------------------------------------- ------------------------
2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 1 1 welcome to my shop
2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 1 2 welcome to my other shop
如何创建查找表?有很多方法。您可以使用Objective C switch语句或更复杂的NSDictionary
在应用程序中对其进行硬编码。您可以使用自行开发的Web服务进行查找,也可以使用现成的Web服务将键/值对映射到iBeacons,例如我公司的Proximity Kit。