AltBean / Android如何管理主动和被动BLE扫描?是否可以将库设置为仅执行被动扫描?

时间:2019-03-19 12:48:42

标签: android bluetooth-lowenergy altbeacon

如果我正确理解AltBeacon的Power Manager文档。在Android 5+设备上,该库将连续(或每隔几秒钟)执行被动扫描,并且还会不时执行主动扫描。活动扫描时间由setBackgroundScanPeriodsetBackgroundBetweenScanPeriod BeaconManager的方法控制。

在我的情况下,我们正在使用的信标以固定的速率进行广告发布,并且不会在主动扫描(SCAN_REQ)上发送其他信息。

关于功耗,我想知道是否存在一种使用库来禁用活动扫描的方法。 e。当我的Android设备靠近该信标时,仅执行被动扫描并获取我的信标发送的所有(或尽可能多的)广告数据包。总而言之,我们希望尽快检测到信标的存在,并在检测到信标之后,仅使用被动扫描来注册所有广告包。

有可能吗?如果是这样,我如何使用该库来获得这种行为?

1 个答案:

答案 0 :(得分:1)

两点:

  1. 当库文档提到主动扫描与被动扫描时,它不是在谈论发送SCAN_REQ。 “被动”扫描仅表示通过硬件数据包过滤器进行的低功耗Android扫描,该扫描将负载分担给蓝牙芯片。如果芯片看到匹配模式的数据包,则唤醒操作系统。不过,就您的问题而言,该库执行的所有扫描都是被动的。

  2. 除了术语上的差异外,如果您只想进行上述过滤的低功耗扫描,则可以将背景扫描周期设置为0。这可能会在Android 8+设备上运行。在Android 5-7上,它可能无法使用,因为使用了完全过滤后的扫描来解析实际的数据包。