iBeacon可以拥有数据有效负载吗?

时间:2015-03-25 03:14:13

标签: bluetooth-lowenergy ibeacon

我知道iBeacon的定义是它正在传输的广告包的固定规范:

  • 9字节iBeacon前缀
  • 16字节UUID
  • 2字节主要
  • 2个字节次要
  • 1字节TX功率

话虽如此,有什么能阻止信标发送广告iBeacon数据包以唤醒手机的应用程序并传输实际数据内容作为BLE数据包的一部分?是否需要进行大量握手才能发送/传输其他数据?

还有其他方式让信标传输数据吗?我最关心的一个问题是欺骗我的信标以伪造我试图收集的数据。我希望能够传输一些数据和iBeacon数据包可以限制欺骗。

这样的事情是否可行?

1 个答案:

答案 0 :(得分:3)

一些可能性:

  • 您可以将一个额外的数据字节添加到iBeacon传输的末尾,然后再达到其最大广告长度。但是,iOS设备无法读取此字节,因为Apple会阻止读取iBeacon广告的原始数据。它适用于Android / Mac / Linux。

  • 您可以将第二个广告与大多数数据字段交错,并将这两个广告与一个公共标识符(如次要广告符号)对齐。您为排列广告分配的字节越多,您使用的数据就越少。您不能使用mac tobline,因为在iOS中无法读取iBeacon传输。

  • 您可以通过GATT连接信标,并使用GATT属性读取数据字段。但是,当连接时,信标将停止广告。这限制了吞吐量和可靠性。

所有这些选项都要求您构建可执行多个广告的自定义BLE信标。这不是一项微不足道的事。