我正在使用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电缆,也没有回拨。
感谢。
答案 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"));