我正在使用树莓派作为灯塔。当我更改信标的UUID时,我希望我的Android应用程序使用Android Beacon Library尽快检测新的UUID。据我所知,两个参数可以影响这个:扫描周期和传输速率。我在传输中使用10Hz,在setForegroundScanPeriod参数中使用300 ms。我正在检测UUID变化的速度相当快,但我想知道是否存在这两个参数的最佳值来更快地检测变化?有没有其他参数可以影响这个?尽可能快地检测UUID更改
回答
Android的灯塔图书馆的范围API是被设计给哪个信标是可见的,默认情况下每1.1秒定期更新。这意味着使用默认设置以及以10Hz(每0.1秒)通告的信标,第一次检测将在0.1-1.1秒之后出现。
可以通过降低在库中的扫描间隔减少对这个范围的上限。如果您致电setForegroundScanPeriod(300l)
,则最长检测时间可能会减少到300毫秒(0.3秒)。为了达到这个目的,你必须确保你的信标广告至少在10赫兹,否则较短的扫描周期往往会错过检测,实际上导致更长的检测时间。
你可以更降低这个数字,但一般要扫描周期至少为1.1倍的传输速率为罕见的传输频繁传输的长度,或2倍。因此,对于每1秒发送一个信标,将其设置为1100ms。对于每100ms发送一次,将其设置为200ms。
感谢您的回答。你能解释我还是张贴链接为什么这个1.1x和传输和扫描期间的2倍关系,我真的不明白吗? – Keyb
您不希望扫描周期恰好为广告周期的1倍,因为您错过了在扫描周期边界(当您停止并重新开始扫描时)看到任何数据包正在传输。如果这个比例恰好为1.0,如果他们总是在边界上,你可能会错过所有这些比例。如果您的扫描周期非常快,则可以使用2x建议。通过快速周期,您在扫描过程中可以进行更多的开/关转换,因此您将有更高的数据包在边界上传输。 2.0比率使得在每个扫描周期中至少有一个数据包是可能的。 – davidgyoung
- 1. 结构 - 尽可能快地更改值
- 2. 尽可能快地执行代码
- 3. 尽可能快地返回请求HttpModules
- 4. 尽可能快地发送HTTP请求
- 5. 尽可能快地做大量的upserts
- 6. Maven的:建立不仅改变模块和尽可能快地
- 7. 尽可能检查图案
- 8. 如何在Json.NET中尽可能快地检索大文件中的几个值?
- 9. 尽可能修改nuget
- 10. 如何在Hibernate中尽可能快地插入数据
- 11. 如何使用线程尽可能快地读取zip流?
- 12. 使用CUDA尽可能快地访问只读全局数组?
- 13. 尽可能快地从阵列组重叠矩形
- 14. 尽可能快地将数据打包到数组中
- 15. 尽可能快地放大画布数据
- 16. R - 尽可能快地初始化数据帧
- 17. 如何尽可能快地获得网站的来源
- 18. 如何在Java中尽可能快地模拟鼠标点击?
- 19. 使用(整数)缩放尽可能快地绘制位图
- 20. 如何尽可能快地在Ruby中执行子进程?
- 21. 如何尽可能快地交换缓冲区
- 22. 算法尽可能快地选择正确的RegEx
- 23. 如何从CherryPy BackgroundTask尽可能快地运行数据返回
- 24. 如何在c中尽可能快地填充内存#
- 25. SDL2:如何尽可能快地绘制矩形?
- 26. 如何使CreateFile尽可能快
- 27. 比较缓冲区尽可能快
- 28. 多行插入尽可能快
- 29. 清晰透明的BufferedImage尽可能快
- 30. 如何使queue.get尽可能快
你优化的背景或前景的Android检测时间?你的目标是什么操作系统版本?答案根据这些问题的答案而有所不同。 – davidgyoung
我只对前景检测感兴趣,我正在使用android 6.0.1 – Keyb