我想使用 Estimote 监控一系列信标。例如,假设 ("rid", "uuid", , ) 标识了一系列信标,其中我的应用程序使用的所有信标共享相同的“rid”和“uuid”。我也拥有许多品牌,每个品牌都可以拥有多个商店。
这个应用程序将出售给许多品牌,我想使用这样的东西:
private static final Region ALL_STORES_REGION = new Region("rid", "uuid", BRAND_ID, null);
beaconManager.startMonitoring(ALL_STORES_REGION);
然后,当客户离开某个商店时接收通知:
beaconManager.setMonitoringListener(new BeaconManager.MonitoringListener() {
@Override
public void onEnteredRegion(Region region, List<Beacon> beacons) {
// do nothing
}
@Override
public void onExitedRegion(Region region) {
listener.onCustomerLeaving(region.getMinor());
}
});
这就是我现在使用的,并且工作正常。问题是,由于我使用 null 作为 Region 中的最后一个值(以便捕获该品牌的任何商店),onEnteredRegion 方法返回的区域返回 null,我无法识别特定商店。
我想到了两种可能的解决方案:在进入时保存信标返回列表,并在客户离开时检索商店的 id。(如果范围内有多个信标,这可能很危险)
或者,使用商店 ID 监控多个特定区域。(这将涉及了解所有商店的 ID,因此也不是理想的解决方案)
如果有任何方法可以获得触发 onExitedRegion 方法的实际 Beacon 或任何其他更好的解决方案,我正在徘徊。
谢谢!