1

我知道 iBeacon 只广播 UUID 信号。我正在阅读的有关 Proximity Beacon API 的内容令人困惑。我们必须注册:

  • 广告 ID(必填)
  • 地位
  • 稳定
  • 纬度和经度
  • 室内地面水平
  • Google Places API 地点 ID。
  • 文字说明
  • 任意属性作为键/值对

Eddystone 是否会广播上述所有信息,如图所示

4

2 回答 2

1

信标本身广播的信息非常少——通常只有 Proximity UUID + 主要 + 次要(对于 iBeacons)或 BeaconID + 传输功率(对于 Eddystone UID 信标)。

Proximity Beacon API是一项服务,可让您“注册”信标及其附加信息。其中一些信息,例如:

  • 地点 ID
  • 建筑层
  • 稳定
  • 纬度/经度
  • 描述
  • 特性

完全可选,仅供注册信标所有者自己使用。您可以选择使用 lat/lng 和 PlaceID 准确指定信标的位置,也可以跳过这些。

Proximity Beacon API 还允许您将称为“附件”的小数据片段与您的信标相关联。这些是人们在野外遇到您的信标时可以看到的东西。这些内容和格式完全取决于您。

因此,如果您想使用 PB API 注册信标,您必须指定的唯一内容是广告 ID。

对于 Eddystone 信标,这将是 16 个字节(来自UID 帧的 BeaconID),而对于 iBeacon,这将是 20 个字节(16 字节 iBeacon Proximity UUID + 2 字节主要 + 2 字节次要)。

请注意,根据我对另一个问题的回答,您上传到信标注册函数的内容是表示底层 BINARY 数据的 base64 编码字符串。因此,获取一个表示广告 ID 的缓冲区或字节数组,然后对其进行 base64 编码。

于 2015-10-22T10:40:17.813 回答
0

正如您所指出的,信标本身仅广播其标识符- 即 iBeacon 的 UUID + Major + Minor 和 Eddystone 的 Namespace + Instance。

您在 Google 的 Proximity API 中注册的这些附加字段完全存储在他们的服务器上,而不是由信标广播。

当您检测到信标时,您可以从广告数据包中读取其标识符,并使用它从 Proximity API 中检索附加数据。

想象一下,您有一个带有标识符的信标X。您将信标的数据上传到 Proximity API,例如 Advertised ID = X, description = "My beacon"。稍后,当您的应用检测到该信标时,它可以转到 Proximity API 并说“给我信标数据X”,这就是您访问额外信息的方式,例如“我的信标”描述。

您链接到的图像来自我记得在互联网上看到的 Proximity API 教程,这只是一个简化,因为严格来说,信标不会广播所有这些信息,只有标识符。但是这个标识符足以从 Proximity API 中获取额外的数据(假设你有 Internet 连接),所以人们可以将 Proximity API 视为扩展你对信标的了解的东西,我认为这就是图像显示它的原因这边走。

于 2015-10-19T11:24:57.073 回答