2017-07-05 24 views
1

我想了解“我们建议不要将扫描周期缩短到1.1秒以下,因为许多信标只能以1赫兹的频率传输”,在android beacon库文档中使用。对最终信标检测进行随机化扫描周期

是否因为我们可能会错过信标包,因为扫描时间太少? 我的使用案例需要检查电池的使用情况。我想问一下这个特定的场景是否可行。

我设置了背景扫描时间为20ms,背景扫描时间为980ms。

这意味着每秒钟都有一次扫描。这种配置可以提高应用程序的响应速度。另外,由于扫描周期较短,因此也应节省电池电量。

1)此配置是否能够检测到信标? 2)如果由于扫描周期过短而未命中,是否仍有可能在下次扫描中检测到信标? 3)如果传输频率是1Hz,并且如果它丢失,它会错过每次,因为背景扫描时间和扫描时间之间的总时间是1秒? 4)如果是,将随机扫描范围内的帮助?

由于

回答

3

考虑以下因素:

  1. 如果信标包发送通过空中当扫描是活动的,你有近距离检测它90%的机会。

  2. 如果扫描在传输过程中开始或停止,则不会检测到数据包。

  3. 开始扫描不是即时的。这需要时间。从您开始扫描指令开始,您将错过数据包,直到扫描完全开始。这一次需要的是设备依赖性,但它可能在几十毫秒内。

  4. 如果您设置的扫描周期短于信标传输速率,则检测到的几率大约会减少扫描周期除以传输周期的比率。

  5. BLE通告包不规则地发出。

所有上述因素意味着短扫描间隔对于可靠检测是不利的。如果您想节省电池电量,最好将扫描仪开启1.1秒,然后在需要达到电池目标时关闭。通过减少扫描周期和扫描周期来缩短平均检测时间只会使平均检测时间变慢,因为在基于点2和点3的浪费循环开启和关闭的时间浪费了有用的扫描时间。

+0

嗨大卫,我想知道。无论应用程序扫描什么,操作系统是否每秒扫描一次以寻址可定向连接的设备?如果是这样,是否有可能搭上扫描“免费”? –

+1

操作系统肯定不是*总是*扫描。但是,它可能会*在任何时候根据其他应用或Google Play服务的请求扫描其附近功能。 “免费骑马”的操作系统概念被称为“机会主义”扫描。从电池节省的角度来看,它并不是免费的,但从另一个应用程序通过扫描耗尽电池的意义上说,它是免费的,您的应用程序可能会获得检测回调。 – davidgyoung

+0

感谢您的回复。这正是我所说的“免费骑马”,意思是免费的。我知道无论谁打开电台,收音机的费用都是固定的。所以我的后续问题是:只要我开始扫描某些东西而不管我的扫描设置是否自动启用机会扫描? –