Android 库如何在5-7平台的应用程序终止后5秒内检测到信标?

Android 库如何在5-7平台的应用程序终止后5秒内检测到信标?,android,ibeacon-android,Android,Ibeacon Android,我在这里浏览了一下表格,我很困惑这个库是如何在Android平台5-7上的AppKill之后实现5秒的检测时间的。这就是链接所说的——安卓4.3-7.x上的应用程序使用长时间运行的后台服务或警报,定期在后台寻找信标。据我所知,警报设置时间不能少于15分钟,那么5秒是如何工作的呢?你提到的我的博客文章的检测时间表(复制如下)说,在Android 5.0-7.x上,检测时间是5秒。(澄清:它确实没有为4.x提出这一主张。)这在5.x-7上是可能的,使用Android 5.0中引入的API,使用长时间

我在这里浏览了一下表格,我很困惑这个库是如何在Android平台5-7上的AppKill之后实现5秒的检测时间的。这就是链接所说的——安卓4.3-7.x上的应用程序使用长时间运行的后台服务或警报,定期在后台寻找信标。据我所知,警报设置时间不能少于15分钟,那么5秒是如何工作的呢?

你提到的我的博客文章的检测时间表(复制如下)说,在Android 5.0-7.x上,检测时间是5秒。(澄清:它确实没有为4.x提出这一主张。)这在5.x-7上是可能的,使用Android 5.0中引入的API,使用长时间运行的过滤低功耗扫描

这样做的目的是将蓝牙LE芯片置于低功耗模式,如果看到任何与预期过滤模式匹配的数据包,该模式会自动唤醒。唤醒后,Android操作系统将扫描结果发送到库中,然后库通过
didEnterRegion
DidRangeBeanConsinRegion
向应用程序发送回调。此过程通常在数据包出现后几秒钟内完成

这些扫描时间与报警无关。在安卓4.x-7.x上,AlarmManager用于完全不同的目的——让长期运行的后台服务保持活跃。警报在未来5分钟内反复重置,只要服务继续运行,警报就不会熄灭。如果应用程序因内存不足或用户将其从屏幕上刷下而被关闭,此警报将触发广播接收器,从而触发长时间运行的扫描服务重新启动

据我所知,安卓4.x-7.x上没有任何东西限制警报每15分钟运行一次以上。您可能正在考虑Android 8+上的一个限制,即将定期作业调度程序项限制为每15分钟或更长时间一次

Android信标库检测时间:

1)您在回答中提到了“长时间运行的低功耗过滤扫描”和“长时间运行的后台服务”。它们是一样的吗?一旦调用startScan方法,这个长期运行的后台服务会做什么?(由于控制现在转移到bluetooth controller,并且启动扫描后应用程序无需做太多工作)2)正在浏览代码,想知道BluetoothLeScanner startScan方法调用为什么使用WorkerThread?它们是一样的。后台服务在等待时不执行任何操作。它只是睡着了,但还活着。睡觉和活着可以让它等待结果。使用新线程是为了避免在主UI线程上进行过多处理,从而导致UI延迟。