我正在使用Altbeacon来检测iBeacons。
如果应用程序位于前台,或者如果应用程序通过“主页”按钮处于后台,则可以正常工作。在这两种情况下都很完美。
但是,当我在通过任务管理器杀死应用程序后尝试检测信标时,没有任何方法可以检测到任何信标。我疯了。
我正在使用Altbeacon的最新版本,这是我的代码(应用程序类):
<meta http-equiv="X-Ua-Compatible" content="IE=edge,chrome=1">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
<div class="pagination">
<ul>
<li>
«
</li>
<li>
1
</li>
<li>
2
</li>
<li>
3
</li>
<li>
4
</li>
<li>
»
</li>
</ul>
</div>
我已经阅读了很多帖子,但我还没有找到任何解决方案。
用于测试的智能手机:小米Redmi Note 2,三星Galaxy S5
---------------- UPDATE ------------------------
RegionBootstrap回调的代码:
public void startBeaconScan() {
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser().
setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25")); //iBeacon layout
beaconManager.setBackgroundBetweenScanPeriod(500);
beaconManager.setBackgroundScanPeriod(500);
beaconManager.setForegroundBetweenScanPeriod(500);
beaconManager.setForegroundScanPeriod(500);
beaconManager.setRegionStatePeristenceEnabled(false);
beaconManager.bind(this);
region = new Region("myMonitoringUniqueId", Identifier.parse("2f234454-cf6d-4a0f-adf2-f4911ba9ffa6"), null, null);
new RegionBootstrap(this, region);
}
对于每一个我都有默认日志,并且在应用程序被杀之后都不会显示它们。
答案 0 :(得分:1)
为了自动启动应用程序以在被杀死后扫描信标,必须在自定义应用程序类的onCreate方法中配置RegionBootstrap,而不是活动。
有关详细信息,请参阅此处:the man page