首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >监测Eddystone信标

监测Eddystone信标
EN

Stack Overflow用户
提问于 2015-09-30 12:29:57
回答 1查看 349关注 0票数 0

关于使用Eddystone信标使用AltBeacon库监视多个区域,我有一个问题。

例如,我有3个信标,每个信标被分配到另一个区域,区域是根据信标的实例值定义的,即("region1“、null、"InstanceValueOfBeacon”、null),我对每个didEnterRegion都有不同的操作。

当我把所有的信标放在一起的时候。应用程序将如何响应?是否会因为发现多个信标而继续在不同区域之间切换?它只是做第一次发现的信标的动作吗?或者这到底是怎么回事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-30 13:14:00

在监视发射Eddystone-UID的信标时,应该像这样设置区域:

代码语言:javascript
复制
Identifier eddystoneNamespaceId1 = Identifier.parse("0x00000000000000000001");
Identifier eddystoneNamespaceId2 = Identifier.parse("0x00000000000000000002");

Region eddystoneUidRegion1 = new Region("eddystoneUidRegion1",
    eddystoneNamespaceId1, null, null);
Region eddystoneUidRegion2 = new Region("eddystoneUidRegion1", 
    eddystoneNamespaceId2, null, null);

beaconManager.setRangeNotifier(this);
beaconManager.startMonitoringBeaconsInRegion(eddystoneUidRegion1);
beaconManager.startMonitoringBeaconsInRegion(eddystoneUidRegion2);

在本例中,定义了两个不同的区域,每个区域具有一个10字节不同的Eddystone-UID命名空间标识符和一个空的Eddystone-UID实例标识符,因此它将与这些命名空间匹配所有信标。传递给Region构造函数的最后一个参数也是空的,因为Eddystone-UID信标只有两个标识符。代码开始监视最后两行中的每个区域。

当第一次检测到与第一区域匹配的任何信标时(例如,带有第一个命名空间标识符的信标),didEnterRegion回调将被触发,传递给eddystoneUidRegion1对象的引用。如果检测到任何匹配第二个区域的信标,也会发生等效的回调。您可以通过检查传递给回调的Region对象的内容来判断检测到哪一个。当所有匹配受监视区域的信标消失时,didExitRegion会出现不同的回调。

这就是监视API的工作方式。还有一些范围很广的API给您一个大约1Hz的回调,其中包含与Region匹配的所有可见信标的列表。您是使用监控API还是远程API取决于您的用例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32866169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档