【问题标题】:AltBeacon - reliability issues: "didExitRegion" is frequently called even if a beacon is right besides the android deviceAltBeacon - 可靠性问题:即使信标在 android 设备旁边,也经常调用“didExitRegion”
【发布时间】:2015-12-19 00:52:57
【问题描述】:
AltBeacon 如何在应用中工作的简要流程:
- 检测指定 ID(UUID、主要/次要 ID)的 iBeacon
- 在调用“didEnterRegion”时运行一个线程(并一直运行到
信标超出范围)
- 调用“didExitRegion”时,等待 30 秒后停止线程
(这是为了确保信标绝对超出范围)
- 期间再次调用“didEnterRegion”时继续运行线程
延迟 30 秒并停止线程,否则。
我发现了一些可靠性问题:
- “didExitRegion”经常被调用,即使 iBeacon 就在应用旁边。
- 一旦调用了“didExitRegion”,即使有一个
非常短的扫描周期设置。
我的目标是运行一个线程,直到信标绝对超出范围 - 换句话说,我希望通过 iBeacon 集成确保应用程序的高可靠性。
有什么建议吗?我错过了什么吗?
您的任何见解将不胜感激!
问候,
【问题讨论】:
标签:
android
ibeacon
altbeacon
android-ibeacon
【解决方案1】:
所描述的问题通常发生在广告频率不够高的信标上。标准 iBeacon 每 100 毫秒 (10 Hz) 传输一次。许多信标制造商试图通过将广告放慢到远低于此标准来延长电池寿命。
Android 信标库旨在与每 1000 毫秒 (1 Hz) 广告的信标一起正常工作。它的扫描周期为 1.1 秒,因此很有可能检测到每隔一秒或更长时间传输一次的信标。
但一些制造商声称通过将传输速率降低到每 5 秒或更短一次来延长电池寿命。这将导致所描述的确切症状,因为库会间歇性地无法检测到信标,从而导致虚假的退出和进入事件。
要解决此问题,请查阅信标文档并将其配置为至少每秒传输一次或更快。