一个应用程序中最大UUID数/信标数?

时间:2018-11-10 00:17:35

标签: bluetooth-lowenergy ibeacon beacon

我想构建一个可以与无数信标进行通信的应用程序。想法是拥有一个应用程序,用户可以在世界各地的合作伙伴商店中使用该应用程序。我了解到,iOS的单个应用程序限制为20个区域,每个区域可以注册无限数量的信标。 限制为20是否意味着该应用一次只能同时处理20个区域,或者20个是UUID的绝对限制?换句话说,我可以注册数千个UUID,并且根据用户位置一次仅激活20个UUID吗? 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在iOS上,一次最多可以注册20个CLRegion实例进行监视。这些必须中的每一个都至少指定一个ProximityUUID,但可以保留主要和次要null,以匹配具有相同ProximityUUID的数十亿个信标中的任何一个。但是可能还会有数十亿个不同的邻近UUID,因此,这肯定不会匹配所有信标。

虽然您一次最多只能注册20个ProximityUUID进行监视,但是可以根据您的建议更改注册的位置。我实际上构建了一个名为Ningo的Web服务,可让您获取一个已知ProximityUUID的列表,这些列表先前已在您的位置的给定距离内检测到。还为该here提供了一个免费和开放源代码的iOS客户端库SDK,以及一个功能完善的参考应用程序(包括免费源代码),它可以做到这一点,从而使您几乎可以检测到周围的所有信标。

另一个更简单的选择是仅使用iOS Ranging API。与监视API不同,可注册范围的CLRegion实例没有限制,尽管实际的限制意味着,一旦您注册了大约100多个,则系统确实会变慢。Ranging API将允许您在应用程序检测到任何信标已在运行,但与Monitoring API不同,它不会让您在出现信标时唤醒应用程序。但是同样,由于如果您尝试注册成千上万个区域,电话会减速到抓取的速度,因此这不是检测任何信标的实用方法。