首页 文章

IBeacon:在后台检测多个信标

提问于
浏览
0

作为我项目的一部分,我需要在悉尼或墨尔本这样的大城市部署大量信标 . 当用户通过其中一个信标时,我的应用应执行特定操作 . 我计划在我的机队中为所有信标保持UUID相同,具有基于城市站点的1-20个主要值的范围,并且每个信标具有不同的次要值 .

我已经完成了iBeacon的后台检测教程,并且已经成功地使用单个beacon进行了测试 . 但我感到困惑的是,我必须在我的代码中为每个信标定义一个区域 .

为了测试,我已经使用以下值配置了我的信标 - UUID - ABCD1234-DCBA-4321-5555-666677778888 major - 1 minor - 1

我当前的区域定义代码如下 - Region region = new Region(“backgroundRegion1”,Identifier.parse(“ABCD1234-DCBA-4321-5555-666677778888”),Identifier.parse(“1”),Identifier.parse(“ 1" ));

相反,我希望用这样的东西检测它(我尝试过并且似乎不起作用) - Region region = new Region(“backgroundRegion1”,Identifier.parse(“ABCD1234-DCBA-4321-5555-666677778888”), null,null);

考虑到我将拥有大量的信标,我只想避免复制粘贴相同的代码行 .

1 回答

  • 1

    我正在研究一个具有类似信标实现的解决方案(一个UUID,许多主要/未成年人) . 我有一些可能的建议:

    有几点需要注意

    如果用户同时处于多个信标的范围内,

    • didEnterRegion()似乎被多次调用 .
      只有当用户超出所有信标范围时才会调用

    • didExitRegion()

    • 只要用户在该信标的范围内,上述链接中的测距解决方案就会触发回调,因此您需要进行自己的过滤

    就个人而言,我在上面的链接中最依赖David的解决方案

相关问题