我在使用AltBeacon库的应用上工作。到目前为止,它很精彩,但现在我遇到了背景模式的问题。
所以当我退出我的应用程序时,我调用mBeaconManager.setBackgroundMode(true);. 2例:
- 我附近至少有一个灯塔:方法didEnterRegion被解雇了,一切都很好
- 如果我在附近没有灯塔的情况下等待超过1小时(1小时30分钟或接近),那么请选择一个:didEnterRegion不再被解雇。我是红色文档所以我明白它不会很快,但即使在15分钟之后,也没有任何事情发生。
在另一台设备(Nexus 4 ......)上,这两种情况都有效。即使在2小时后,app被杀等等,didenterRegion仍然被解雇。
到目前为止,Nexus 5在Android 5.1.1上,而Nexus 4在Android 5.1.1上。似乎仅在Nexus 5上......
有什么想法吗?
非常感谢
答案 0 :(得分:1)
可能是在Nexus 5上,由于内存不足或其他条件,操作系统正在后台终止您的应用。您可以通过修改要设置的代码来判断是否发生这种情况:
beaconManager.setDebug(true);
然后在应用程序的后台查看LogCat。如果应用程序仍在运行(并等待信标检测),您应该看到如下行:
Waiting to start full Bluetooth scan for another XXXX milliseconds
如果你没有看到如上所示的行,那么这可能表明该应用已被操作系统杀死。如果确实发生了这种情况,那么在这些条件下重新启动应用程序的修复程序将被放入可用库{2.3}的2.3-beta4版本中。它尚未在JCenter / Maven中提供,但将在2.3版本尚未发布时使用。
一个澄清:如果你有Android 5.x,背景检测应该非常快。如果一切正常,您将在打开信标的5秒钟内从库中获得回调。