没有让RegionBootstrap触发

时间:2014-08-28 05:25:51

标签: android altbeacon

我正在使用Android信标库,并按照以下方式实施RegionbootStrap

在应用类

public void onCreate() {
    super.onCreate();

    Region region = new Region(getPackageName(), null, null, null);
    mRegionBootstrap = new RegionBootstrap(this, region);
    new BackgroundPowerSaver(this);
}

@Override
public void didEnterRegion(Region arg0) {
    mRegionBootstrap.disable();

    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
}

在清单

<activity
android:name=".activity.MainActivity"
android:configChanges="keyboardHidden|orientation|keyboard"
android:launchMode="singleInstance"
android:screenOrientation="portrait" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
</activity>

当我启动应用程序时,它使用RangeNotifier成功扫描前景和背景中的iBeacons。我还使用自己的周期进行扫描和延迟扫描。但我不知道如何测试RegionbootStrap。我试图启动该应用程序,然后强制关闭它,重启设备并靠近iBeacon。还尝试在iBeacon附近插拔USB电缆,也没有回拨。

感谢。

1 个答案:

答案 0 :(得分:0)

问题是找不到iBeacon,因为我只在我的BeaconParser中添加了新的Activity

解决方案是在Application类中调用以下内容来为RegionBootstrap注册iBeacon:

sBeaconManager = BeaconManager.getInstanceForApplication(this);

// Add support for iBeacon
sBeaconManager
        .getBeaconParsers()
        .add(new BeaconParser()
        .setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));