我们现在使用altbeacon库已经有几年了,直到android 7我们从来没有遇到过区域进入/退出和后台测距的任何问题。然而,对于奥利奥(用8.1测试),事情似乎发生了变化。 随着应用程序在后台,我们现在获得1个输入区域,没有测距和没有退出区域事件。可以肯定的是,我们使用了android-beacon-library-reference实现并看到了相同的效果。没有测距,没有区域退出,也没有区域重新进入。在后台只检测到第一个输入区域。
在前台,一切正常。
在Android 8.0 / 8.1中是否会出现这种情况,并且不再可以进行测距和退出事件?或者我们需要添加什么?
使用最新的org.altbeacon:android-beacon-library:2.13.1
答案 0 :(得分:0)
如果使用库版本2.13.1或更高版本,您应该在Android 8.1上正常测量和监控事件。请参阅下文,了解Android 8+中背景扫描的新限制,这可能会导致事件发生在某些情况下更慢。如果您使用的是较旧的库版本,则会遗漏这些更新:
2.13在Android 8.1上增加了对屏幕关闭的信标扫描支持,这增加了对扫描过滤器的要求。
2.12在Android 8上添加了对后台扫描的支持。
知道Android 8为应用程序在后台运行所有puproses的频率增加了新的限制,包括扫描信标。一般来说,这意味着在屏幕上看不见的设备只能在一段时间内进行几分钟的背景工作,时间约为15分钟。这意味着在后台测距更新可能只需每15分钟左右。监控更新仍然很快(如果没有信标出现然后出现)但是如果新信标出现在某些已经存在之后或者某个区域中的所有信标都消失的话,则会很慢(大约需要15分钟)。
如果你的应用需要在后台进行持续扫描,那么你可能需要一个前台服务信来完成Android 8 +。
有关这些新Android 8限制的详细信息,请参阅here
如果您的体验与上述内容不符,那么可能会在后续问题中找到值得探索的应用安装问题。