更改 iBeacon 的 UUID、Major 和 Minor 值

Changing the UUID, Major and Minor values of an iBeacon

据我了解,可以使用制造商提供的 SDK 更改 iBeacon 的 UUID 以及 Major 和 Minor 值。我不明白的是为什么您想要更改这些值,因为您可以非常确定 Major 和 Minor 值的组合是唯一的。这样您就可以简单地检测范围内的所有 iBeacon 并根据这些值选择您需要的 iBeacon,而不是扫描具有您之前设置的 Major 值的 iBeacon。你会说这种技术有什么缺点吗?它仍然允许您在后台检测 iBeacons 吗?

制造商通常会运送具有相同标识符的信标。除非另有要求,例如 Radius Networks 运送所有带有标识符的信标:

ProximityUUID:2F234454-CF6D-4A0F-ADF2-F4911BA9FFA6 专业:1 未成年人:1

如果您有多个这样的信标,并且您希望在检测到每个信标时都执行独特的操作,则需要更改它们的标识符,使每个信标都是唯一的。

更改标识符的其他几个原因:

  1. 避免与可能与您使用相同标识符的其他信标所有者发生冲突。您不希望您的应用程序在与具有相同标识符的另一个人的信标附近完全不同的地方时,就好像它在您的信标附近一样响应。

  2. 使用信标区域设计用于背景触发的信标标识符层次结构。这在 iOS 上尤为重要,它限制了您何时可以将应用程序启动到后台。通过一起设计信标标识符和应用程序,您可以设置多个区域来触发您的应用程序在后台启动并根据已知的标识符方案执行不同的操作。

  3. 在 iOS 上,您只能检测已知 UUID 的信标,每个应用的 UUID 上限为 20 个。如果您需要检测超过 20 个信标,并且每个信标都有不同的 UUID,这将不起作用。