我试图理解“我们建议不要将扫描周期减少到小于1.1秒,因为许多信标只能以1 Hz的频率发送”,这在Android beacon库文档中使用。
是因为我们可能会错过信标包,因为扫描时间太短了? 我的使用案例需要控制电池消耗。我想问一下这种特殊情况是否有效。
我将背景扫描时间设置为20毫秒,背景扫描时间设置为980毫秒。
这意味着每秒都有一次扫描。此配置可以提高应用程序的响应能力。此外,由于扫描周期较短,因此也应节省电池电量。
1)此配置是否能够检测到信标? 2)如果由于扫描周期较短而丢失,是否仍然可以在下一次扫描中检测到信标? 3)如果传输的频率是1Hz并且如果它没有接通,那么每次都会错过,因为背景扫描时间和扫描时间之间的总和是1秒? 4)如果是,是否会在一个范围内随机化扫描周期?
由于
答案 0 :(得分:3)
考虑以下因素:
如果扫描处于活动状态时通过无线方式发送信标数据包,则有90%的可能性在近距离检测到它。
如果在传输过程中启动或停止扫描,则不会检测到数据包。
开始扫描不是即时的。这需要时间。从命令扫描开始,您将错过数据包,直到扫描完全开始。这个时间取决于设备,但可能是10毫秒。
如果您将扫描周期设置为短于信标传输速率,则检测它的几率会大致减少扫描周期除以传输周期的比率。
BLE广告包不定期发送。
所有上述因素都意味着短扫描间隔对可靠检测不利。如果您想节省电池,最好让扫描仪保持1.1秒,然后在您需要达到电池目标时将其关闭。尝试通过减少扫描周期和扫描周期之间来缩短平均检测时间只会使平均检测时间变慢,因为基于第2点和第3点,浪费时间打开和关闭的时间会丢失有用的扫描时间。 / p>