对RegionBootstrap感到困惑以及何时使用它

时间:2017-07-14 12:12:11

标签: android ibeacon-android altbeacon

我的任务是修复一些使用altbeacon和iBeacons的代码。 信标的检测在前景中很好,但在后台却不能。

在以前台模式扫描的Activity中,在进入后台时,onStop用于从beaconmanager取消绑定,然后在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();
        }
    }
}

beaconBkgService代码:

var lat = $("#" + '<%= hvLatitude.ClientID %>');
var lng = $("#" + '<%= hvLongitude.ClientID %>');
 ...

在调用beaconBkgService.startScanning()之前,Activity onStop是否应该调用信标管理器unbind()?我曾经尝试过,但没有任何工作。

期望的结果是,当应用程序进入后台时,扫描应该每3秒持续1秒,但是当信标打开且应用程序处于后台时,beaconBkgService didEnterRegion不会触发。

当我开始工作时,如果Activity检测到前景中的信标,那么ExitRegion将如何生效,然后用户切换到后台并退出信标区域? beaconBkgService中的onExitRegion会激活吗?即使用RegionBootstrap从前台保留到背景的状态?

1 个答案:

答案 0 :(得分:0)

ffprobe -v quiet -print_format json -show_format -show_streams video.mp4 RegionBootstrap并非设计用于Android BootstrapNotifier。它们应该与Android Activity类或Android应用生命周期中存在的其他对象一起使用。

了解在Android生命周期中,当用户在应用程序中导航时,会创建和销毁活动。尝试在Activity中进行长期信标扫描的任何代码都不起作用。

相反,应用程序对象是在用户首次启动应用程序时(或通过第一次信标检测自动启动应用程序时)创建的,并且继续存在。

修复此代码的最简单方法是重写它以使用Application类。您可以在Android Beacon Library的示例代码中看到如何执行此操作的示例。请参阅此处的在后台启动应用部分:http://altbeacon.github.io/android-beacon-library/samples.html

您可能还想使用同一页面的自动省电示例代码部分中的代码。