【问题标题】:iBeacon,a very strange thing with the UUID approach?iBeacon,UUID 方法很奇怪?
【发布时间】:2015-01-21 06:54:15
【问题描述】:

Apple 说,如果不知道他们的 UUID,就无法检测到 iBeacons。 因此,您必须在 initWithProximityUUID:uuid 中输入设备的 UUID。

应该问一个很奇怪的问题。如果您销售使用 iBeacon 的产品,个人产品,例如 stickNfindTile,如果应用不知道 UUID,它们如何首次与您的硬件配对?

  1. 一种选择是发送带有 UUID 的论文,这很糟糕,并且使大规模生产变得更加困难。

2.他们所有的设备都有相同的UUID,这显然不可能是真的,因为会有一团糟。

  1. 他们不知何故,在第一次使用时,从 iDevice 到模块,从空中写入 UUID。因此,iPhone 创建了UUID,而不是对硬件UUIDTI C2540 芯片)进行编程,这对我来说听起来很奇怪,因为它需要向该芯片添加非常昂贵的硬件。

那么,UUID 这个东西我缺少什么?

我可以看到有很多应用程序可以搜索 iBeacons,他们怎么能这样做???

【问题讨论】:

  • 从空中更改 UUID 需要非常复杂的硬件,这是因为当您将硬件设置为像信标一样时,您必须先将其移动到讲 BLE(c2540 芯片),然后才能更改其 UUID .为了让它说 BLE,你需要有另一个 MCU,并且那个 MCU 也应该得到 BLE 命令。
  • 请对只是想提供帮助的人多一点礼貌。我已经编辑了您的评论以删除侮辱。他们只是在指出一种潜在的资源。
  • 也就是说,对于我使用过的大多数设备,当用户指定他们想要连接的设备时,应用程序会获取 UUID。它假定您正在连接的设备是该区域中唯一未连接的该类型设备(如心率计),并且应用程序读取并存储 UUID 以供以后重新连接。不过,其中一些确实会在设备包装内的纸上打印 UUID。

标签: ios bluetooth bluetooth-lowenergy core-bluetooth ibeacon


【解决方案1】:

每个 iBeacon 都有一个工厂 UUID。 通常,制造商的所有 iBeacon 都具有相同的 UUID。 例如,所有 Estimote iBeacon 的 UUID 为 B9407F30-F5F8-466E-AFF9-25556B57FE6D。 取决于制造商,提供的 SDK 允许或不允许 UUID 自定义(大多数都不允许)。

我认为列出远程 iBeacon 的应用程序使用 CoreBluetooth 而不是 CoreLocation。 CB 允许应用获取所有远程设备,您只需过滤 iBeacons。

【讨论】:

  • BLE 让您聆听和发现,但从不给您 UUID 。当你第一次想配对时,你必须知道 UUID
【解决方案2】:

嗯,我认为这个问题对于理解整个事情非常重要,我有答案。

答案是,Apple 考虑过,并给出了minor 和major 字段。 因此,您可以制作一个产品,当您的所有 UUID 都相同时,应用程序可以查找该 UUID,检测后读取其主要和次要,并将它们保存以备后用。 比,它只会寻找这些主要和次要的。

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 1970-01-01
    • 2019-01-03
    • 2017-04-16
    • 1970-01-01
    • 2016-09-28
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多