Как я могу "обновить" мой RegionBootstrap (Android Beacon Library)?

Я занимаюсь разработкой приложения для Android, которое работает с Beacons (благодаря использованию библиотеки Android Beacon). У меня есть приложение, которое расширяет BootstrapNotifier, который вызывает метод Controller (мой класс), который создает новый RegionBootstrap. Все работает нормально, когда приложение запускается, и Маяки, связанные с соответствующими регионами, запускают уведомления, когда они входят или выходят из этого конкретного региона.

public class BackgroundApplication extends Application implements BootstrapNotifier, RangeNotifier {
...
@Override 
public void onCreate() {

    this.controller = Controller.getInstance();

    mAllBeaconsRegion = new Region("all beacons", null, null, null);

    //the following call returns the correct list of regions
    this.regionList = this.controller.getRegionList(this);  

    this.regionList.add(mAllBeaconsRegion);

    this.controller.setBootstrapNotifier(this);
    this.controller.setRegionBootstrap(this.regionList);
    ...

}

Это контроллер:

public class Controller {
...
    public void setRegionBootstrap(ArrayList<Region> regionList){

        this.regionBootstrap = new RegionBootstrap(this.bootstrapNotifier, regionList);

    }

    public void setBootstrapNotifier (BootstrapNotifier bn){
        this.bootstrapNotifier = bn;
    }
}

Теперь я даю возможность добавить Регионы, и я хотел бы немедленно определить, когда Маяк входит или покидает этот Регион. Для этого я подумал, что мне нужно просто повторно вызвать этот метод setRegionBootstrap, передав новый список регионов. Вместо этого у меня нет уведомлений о входе или выходе из нового региона, пока я не перезапущу приложение. Есть идеи, как я могу это исправить? Благодарю.

1 ответ

Решение

Вы должны создать RegionBootstrap только один раз. Если вы хотите изменить отслеживаемые регионы, добавив новые, просто сделайте это прямо в BeaconManager следующим образом:

beaconManager.startMonitoringBeaconsInRegion(new Region("myMonitoringUniqueId", null, null, null));
Другие вопросы по тегам