2016-05-10 38 views
0

我正在使用树莓派作为灯塔。当我更改信标的UUID时,我希望我的Android应用程序使用Android Beacon Library尽快检测新的UUID。据我所知,两个参数可以影响这个:扫描周期和传输速率。我在传输中使用10Hz,在setForegroundScanPeriod参数中使用300 ms。我正在检测UUID变化的速度相当快,但我想知道是否存在这两个参数的最佳值来更快地检测变化?有没有其他参数可以影响这个?尽可能快地检测UUID更改

+0

你优化的背景或前景的Android检测时间?你的目标是什么操作系统版本?答案根据这些问题的答案而有所不同。 – davidgyoung

+0

我只对前景检测感兴趣,我正在使用android 6.0.1 – Keyb

回答

1

Android的灯塔图书馆的范围API是被设计给哪个信标是可见的,默认情况下每1.1秒定期更新。这意味着使用默认设置以及以10Hz(每0.1秒)通告的信标,第一次检测将在0.1-1.1秒之后出现。

可以通过降低在库中的扫描间隔减少对这个范围的上限。如果您致电setForegroundScanPeriod(300l),则最长检测时间可能会减少到300毫秒(0.3秒)。为了达到这个目的,你必须确保你的信标广告至少在10赫兹,否则较短的扫描周期往往会错过检测,实际上导致更长的检测时间。

你可以更降低这个数字,但一般要扫描周期至少为1.1倍的传输速率为罕见的传输频繁传输的长度,或2倍。因此,对于每1秒发送一个信标,将其设置为1100ms。对于每100ms发送一次,将其设置为200ms。

+0

感谢您的回答。你能解释我还是张贴链接为什么这个1.1x和传输和扫描期间的2倍关系,我真的不明白吗? – Keyb

+0

您不希望扫描周期恰好为广告周期的1倍,因为您错过了在扫描周期边界(当您停止并重新开始扫描时)看到任何数据包正在传输。如果这个比例恰好为1.0,如果他们总是在边界上,你可能会错过所有这些比例。如果您的扫描周期非常快,则可以使用2x建议。通过快速周期,您在扫描过程中可以进行更多的开/关转换,因此您将有更高的数据包在边界上传输。 2.0比率使得在每个扫描周期中至少有一个数据包是可能的。 – davidgyoung