0

我正在开发一个带有多个 Estimote iBeacons 的 iOS 8 应用程序。根据(https://community.estimote.com/hc/communities/public/questions/200966066-How-detect-multiple-beacons-iOS?locale=en-us),我实现了一个 BeaconManager,并注册了两个信标区域。但是,只有第二个信标区域有效。

相反,我使用了两个 BeaconManager 并为它们每个注册一个 BeaconRegion。现在它起作用了。但是,出现了一个新问题:在某些情况下,当我进入或退出该区域时,我会收到一个信标的多个通知,而不仅仅是一个。这个链接(http://beekn.net/2013/11/ibeacon-tutorial-dealing-with-errors/)说这是苹果的一个错误,但我不确定这个案例。

任何人都可以帮忙吗?

谢谢,瑞安

4

2 回答 2

0

Beacon 区域是共享的系统资源,这意味着所有BeaconManager 和 LocationManager 都会收到应用程序中注册的所有区域的状态变化的通知。

示例:如果您使用管理器 A 监视信标区域 A,使用管理器 B 监视信标区域 B,管理器 A 仍会收到有关区域 B 的通知。管理器 B 和区域 A 也是如此。

因此,在您的应用程序中拥有多个 BeaconManager 实例几乎没有意义。

使用单个 BeaconManager 监控多个区域应该可以正常工作,必须有特定于您的代码的某些内容导致其中一个区域无法正常工作。如果您可以在问题中添加代码片段,那可能有助于跟踪问题。

于 2015-01-28T10:50:58.857 回答
0

根据我的观点,这些应该只是一个管理所有信标的信标管理器。

如果您有来自同一供应商的信标(在您的情况下是 Estimote iBeacons),那么我认为您不需要在这里创建多个区域。

因为同一供应商的所有信标都具有相同的proximity UUID. 不同的是它的Major valueMinor value

所以你可以用它的主要和次要值来区分所有的信标,还有一个ranging可以为分离做进一步的粒度。

于 2015-01-28T10:55:27.200 回答