iBeacon 可以有数据负载吗

Can an iBeacon have a data payload

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

话虽这么说,有没有什么可以阻止信标既发送广告 iBeacon 数据包来唤醒 phone 的应用程序,又将实际数据内容作为 BLE 数据包的一部分传输?发送/传输额外数据是否需要大量握手?

信标是否有其他方式传输数据?我最担心的问题之一是欺骗我的信标以伪造我试图收集的数据。我希望能够将一些数据与 iBeacon 数据包一起传输,这样我就可以限制欺骗。

这样的事情可行吗?

几种可能性:

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

  • 您可以将第二个广告客户与大部分数据字段交织在一起,并将两者与一个公共标识符(如未成年人)对齐。分配给排列广告的字节越多,用于数据的字节就越少。您不能使用 mac 将它们排列起来,因为在 iOS 中对于 iBeacon 传输来说这是不可读的。

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

所有这些选项都需要您构建一个自定义的 BLE 信标,该信标可以执行多个广告。这不是一件小事。