我在Android 6.0.1(Nexus 5)上并通过Altbeacon库2.9.1测试信标监控,并且在信标附近的家中测试设备(几个房间)我得到多个条目/退出回调。信标基于Raspberry Pi 3,具有默认设置(作为iBeacon传输)。
我正在使用Altbeacon参考应用程序但是在日志输出中我每5-6分钟看到一次条目事件消息(didEnterRegion),从而产生通知。在此期间,Nexus 5固定在桌面上。
唯一的源代码修改是添加一个特定的区域来监控,但这就是它。
关于行为为何如此的任何想法?
答案 0 :(得分:0)
最可能的解释是,您的Android设备只会间歇性地接收来自信标的传输。
使用默认设置,如果在10秒内未检测到与该区域匹配的信标,则Android Beacon Library会将区域视为已退出。 Linux信标发射器默认每秒发送一次广告。 如果连续错过其中10个传输,您将获得一个区域退出,然后在下次收到一个区域时退出。了解即使在理想条件下,并非所有信标传输都已收到无线电噪音和其他问题。一旦你接近信标发射机范围的边缘,这种间歇性的退出/进入事件将越来越频繁地发生。
要解决此问题,您可以执行以下操作:
将信标的发射器频率从1 Hz增加到10 Hz。这样就不太可能在10秒内收到信标数据包。
尽可能增加发射机功率(虽然Raspberry Pi可能无法实现)
将信标移近Android接收器
通过致电BeaconManager.setRegionExitPeriod(20000l);