为什么自从Lollipop以来,iBeacons扫描使用的电池更少?

问题描述 投票:4回答:2

根据documentationAndroid Beacon Library

Android 5.0+上的快速背景检测

在Android 5.0上,新的扫描API允许更有效的背景扫描,节省了与上述技术类似的功耗节省,但信标检测时间更快。它不需要花费五分钟来检测信标(具有上述默认值),而是通常在几秒钟内检测到新信标。

但是看看Android的官方文档,我能找到的主要新东西是API 21中引入的BlueToothLeScanner。 这个新类的文档没有提到使用更少能量的任何内容。

假设Android Beacon Library也在使用这些框架,为什么它会节省更多能量呢? 即,这个库的处理与我自己的应用程序中调用startScan()有什么不同,而不使用这个库?

android ibeacon beacon android-ibeacon
2个回答
1
投票

Android 5引入了支持扫描过滤器的新扫描API,它在BLE广告包中寻找字节模式。这些滤波器专为在硬件中实现这些滤波器的蓝牙芯片而设计。这意味着蓝牙芯片将卸载所有处理,直到匹配为止,然后才将数据包发送到操作系统。从电池角度来看,这更有效。我在引入扫描滤波器时对Nexus 5进行的测试表明,滤波器使用的滤波电流仅为未滤波扫描电池的10%。新手机上的新一代芯片效率更高。


1
投票

在Lollipop之前的API中,没有扫描窗口/间隔设置。使用的参数被硬编码为5000/5000,这意味着无线电一直在监听传入的广告。

使用新API,您可以将扫描窗口/间隔设置为“平衡”,这将使用参数500/5000或类似。与无线电有效时相比,这需要10%的能量!

新的API也有方法,以便可以在蓝牙芯片而不是主CPU中完成数据包过滤。这可能会降低功耗但我认为这只会在嘈杂的区域(许多广​​告商)中显着。

© www.soinside.com 2019 - 2024. All rights reserved.