我正在浏览这里的表格http://www.davidgyoungtech.com/2017/08/07/beacon-detection-with-android-8,我很困惑这个库是如何在Android 5-7上的app杀死之后实现5秒的检测时间的。这就是链接所说的-Android4.3-7.x上的应用程序使用长时间运行的后台服务或警报来定期查找背景中的信标。据我所知,警报时间不能少于15分钟,那么5秒是如何工作的呢?
发布于 2019-07-24 18:15:36
我的博客文章中提到的检测时间表(转载如下)说,在Android5.0-7.x上检测时间是5秒。(澄清:不是为4.x提出这一索赔。)这在5.x-7上是可能的,通过使用Android5.0中引入的API进行长时间运行的过滤低功耗扫描。这是设置这些的代码。
这样做是将蓝牙LE芯片置于低功耗模式,如果看到任何符合预期过滤模式的数据包,该模式就会自动唤醒。醒来后,Android将扫描结果传递给库,然后库通过didEnterRegion或didRangeBeaconsInRegion向应用程序发送回调。此过程通常在数据包出现后的几秒钟内完成。
这些扫描时间与警报无关。在Android4.x-7.x上,AlarmManager被用于一个完全不同的目的--保持一个长期运行的后台服务的活力。将来,警报会反复重置5分钟,而且只要服务继续运行,它就永远不会关闭。如果该应用程序由于内存不足或用户将其从屏幕上滑动而被关闭,此警报将触发BroadcastReceiver,触发长时间运行的扫描服务以重新启动自己。
据我所知,在Android4.x-7.x上没有任何东西可以限制警报每15分钟运行一次。您可能会想到对Android 8+的限制,它将周期性的JobScheduler项目限制在每15分钟或更长时间。
安卓信标库检测时间:

https://stackoverflow.com/questions/57188444
复制相似问题