我的任务是修复一些在iBeacons中使用altbeacon的代码。 信标的检测在前台运行良好,但不在后台运行。关于RegionBootstrap以及何时使用它的疑问
在这种扫描在前景模式中,在进入背景的onStop使用来自beaconmanager解除绑定,然后调用该例在beaconBkgService的方法中的活动:
活动码:
protected void onStop() {
super.onStop();
try {
// Do we need to unbind????
iBeaconManager.unbind(this);
beaconBkgService.startScanning();
} catch (Exception e) {
e.printStackTrace();
}
}
beaconBkgService代码:
public class beaconBkgService extends Application implements BootstrapNotifier {
public void startScanning() {
try {
mBeaconManager = BeaconManager.getInstanceForApplication(this);
mBeaconManager.setBackgroundBetweenScanPeriod(3000L);
mBeaconManager.setBackgroundScanPeriod(1000L);
mBeaconManager.setBackgroundMode(true);
if (mRegionBootstrap == null){
mAllBeaconsRegion = new ArrayList<Region>();
for (UserBeacons userBeacon : userBeacons) {
mBeaconsRegion = new Region(userBeacon.identifier, userBeacon.UUID, null, null);
mAllBeaconsRegion.add(mBeaconsRegion);
}
mRegionBootstrap = new RegionBootstrap(this, mAllBeaconsRegion);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
如果该活动的onStop调用灯塔管理员解除绑定()调用beaconBkgService.startScanning之前( )?我曾尝试过,但没有任何工作。
期望的结果是,当应用程序进入后台时,扫描应该每3秒持续1秒,但beaconBkgService didEnterRegion不会在启动信标和应用程序处于后台时触发。
当我得到这个工作时,如果Activity在前台检测到信标,那么ExitRegion如何实现,然后用户切换到背景并退出信标区域? beaconBkgService中的onExitRegion会触发吗?即使用RegionBootstrap从前景到后台保存状态?
感谢您的回复。后台扫描是在另一个类公共类beaconBkgService扩展应用程序实现BootstrapNotifier,以便应该是OK是吗? – newbie101