我正在修改 Estimote 提供的 Demo App。目前,当我进入信标区域时,我会收到通知,然后除非我退出该区域,否则我不会再收到任何通知。我希望每次更改最近的信标时都收到通知。也就是说,如果最近的信标是绿色的,那么我想收到一个通知,但是如果 2 秒后最近的信标是蓝色的,我想收到另一个通知。然后我会以某种方式过滤通知..
我有一个名为 NotifyApp 的类,它扩展了一个应用程序。如果我必须使用不同的 MonitoringListener 方法,每个区域一个,或者我应该使用 RangingListener..
public void onCreate() {
super.onCreate();
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
beaconManager = new BeaconManager(this);
beaconManager.setBackgroundScanPeriod(TimeUnit.SECONDS.toMillis(1), 0);
for (int i=0; i<3; i++) {
region = new Region("rid", null, null, MyBeacons.getInstance().getMinor(i));
beaconManager.setMonitoringListener(new MonitoringListener() {
@Override
public void onEnteredRegion(Region region, List<Beacon> beacons) {
postNotification("MONITORING: Beacon " + MyBeacons.getInstance().getColor(beacons.get(0).getMinor()));
}
@Override
public void onExitedRegion(Region region) {
postNotification("Exited region");
}
});
}
}