代码之家  ›  专栏  ›  技术社区  ›  ailoiss

估计重复通知

  •  0
  • ailoiss  · 技术社区  · 9 年前

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

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

    有人能帮忙吗?

    谢谢 赖安

    2 回复  |  直到 9 年前
        1
  •  0
  •   heypiotr    9 年前

    信标区域是共享的系统资源,这意味着 全部的 BeaconManagers和LocationManagers被通知状态更改 全部的 应用程序中注册的地区。

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

    正因为如此,在你的应用程序中拥有一个以上的Beacon Manager实例几乎没有意义。

    使用一个Beacon Manager监视多个区域应该可以正常工作,必须有特定于您的代码的东西导致其中一个区域无法工作。如果您可以在问题中添加一段代码,这可能有助于跟踪问题。

        2
  •  0
  •   Mehul Patel Nikita Khandelwal    9 年前

    根据我的意见,这些应该只有一个信标管理器来管理所有信标。

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

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

    因此,您可以将所有信标与其主要和次要值区分开来,还有一个 ranging 这可以为分离提供进一步的粒度。