Estimote:当iBeacon临近时向用户发送通知

时间:2014-06-04 10:15:56

标签: android notifications ibeacon estimote

我正在修改Estimote提供的演示应用程序。目前,当我进入信标区域时,我收到通知,然后除非我退出该区域,否则我将不再收到任何通知。 我希望每次更改最近的信标时都收到通知。也就是说,如果最接近的信标是绿色,那么我希望收到通知,但如果在2秒后最近的信标是蓝色信标,我希望得到另一个通知。 然后我会以某种方式过滤通知..

我有一个名为NotifyApp的类,它扩展了一个Application。如果我必须使用不同的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");
       }
     });
  } 
}

1 个答案:

答案 0 :(得分:1)

Monitoring API仅用于发现进入和退出的区域。

从您的用例看起来您想要使用测距API。您应该在发现监控信标后立即使用它。