Android Oreo "We are inside a beacon region. We will not scan between cycles" 中的 Altbeacon

Altbeacon in Android Oreo "We are inside a beacon region. We will not scan between cycles"

我已经更新了 altbeacon-library,我目前使用的是 2.13.1。 我一直在做一些基本测试以使应用程序适应 Android Oreo,但我没有得到库的预期行为。 当应用程序不在前台时,ScanJob 大约每 15 分钟启动一次,但我每次都会看到这条消息:

"We are inside a beacon region.  We will not scan between cycles"

我曾尝试在两个信标中设置不同的 uuid 以尝试触发更多扫描,但我了解查找和 ScanJob 代码,一旦您进入任何区域,您将不再扫描,直到您退出所有区域并重新输入一个。那是对的吗?扫描是否可以考虑不同的区域,以便我们可以获得更频繁的扫描周期?

Android Beacon 库 运行 在 Android 8+ 的后台将每隔 ~15 分钟对信标进行一次软件扫描使用默认设置。这不受区域状态的影响。 任何扫描的信标都会导致适当的回调didEnterRegiondidExitRegiondidRangeBeacobsIbRegion

如果没有看到设置代码、回调定义和知道测试期间处于活动状态的信标,很难说出您遇到了什么问题。但是,如果您没有看到它像上面描述的那样工作,那就是有问题了。

问题中显示的日志行仅表示最近看到了信标,因此硬件蓝牙过滤器无法在软件扫描周期之间寻找新出现的信标用过的。如果不存在信标,库将使用此类过滤器进行非常快速的首次检测。但它不适用于第二次检测,它会回到如上所述的后台扫描周期。