【问题标题】:IBeacon : Detect multiple beacons in backgroundIBeacon:在后台检测多个信标
【发布时间】:2016-10-21 04:05:31
【问题描述】:

作为我项目的一部分,我需要在悉尼或墨尔本等大城市部署大量信标。当用户经过这些信标之一时,我的应用程序应该执行特定操作。我计划为我的舰队中的所有信标保持 UUID 相同,根据城市站点设置 1-20 个主要值,并为每个信标设置不同的次要值。

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

为了测试,我使用以下值配置了我的信标 - UUID - ABCD1234-DCBA-4321-5555-666677778888 专业 - 1 次要 - 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);

考虑到我会有大量的信标,我只是想避免复制粘贴同一行代码。

【问题讨论】:

  • 对不起,我以为你已经标记了 iOS,因为 iBeacon,但我现在注意到你没有。恐怕我对Android一无所知
  • 我有两个兼容 iBeacon 的信标,我正在尝试使用我的 Android 应用程序。我已经粘贴了我正在使用的代码,看起来与您建议的代码非常相似。
  • 是的,我确信类似的事情是可能的。

标签: bluetooth bluetooth-lowenergy ibeacon ibeacon-android altbeacon


【解决方案1】:

我正在研究具有类似信标实现的解决方案(一个 UUID,许多主要/次要)。我有几个可能的建议:

  1. 你可以这样做How can I get beacon's data (UUID,Major,Minor) in `didEnterRegion` in altbeacon library?
  2. 您可以在 didEnterRegion() 回调中使用区域 ID(在您的示例中为“backgroundRegion1”)来分离信标。这假设区域 ID 足够唯一以正确触发应用行为

注意事项

  1. 如果用户同时在多个信标范围内,didEnterRegion() 似乎会被多次调用。
  2. didExitRegion() 仅在用户超出所有信标范围时才被调用
  3. 只要用户在该信标的范围内,上面链接中的测距解决方案就会触发回调,因此您需要进行自己的过滤

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

【讨论】:

  • 谢谢,@Matt-Yoder。这就是我要建议的。
  • stackoverflow.com/users/5505153/matt-yoder,我的问题仍然部分没有回答(我没有足够清楚地提出问题)。
  • stackoverflow.com/users/5505153/matt-yoder ,很遗憾我的问题仍未得到解答,或者可能是我不明白您的解决方案。
  • @Dibzmania 还有什么未解决的问题?最终,我认为您只需要在代码中定义一个区域(带有区域 ID 和 UUID)。然后,David 定义的测距解决方案将使您能够按主要/次要解析出不同的信标
  • 您能否发布您的 didEnter/Exit/Range 代码。 @davidgyoung - 他可以定义一个“null”作为主要/次要区域吗?
猜你喜欢
  • 2016-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多