Привет, я создал приложение, использующее справочное приложение altbeacon. И я хочу вызвать didEnterRegion с помощью бутстрап-уведомления, когда приложение видит маяк в фоновом режиме. Но я не хочу, чтобы он сканировал фон каждые 5 минут, я хочу, чтобы приложение немедленно реагировало на новый маяк. Есть ли способ сделать это?Библиотека AltBeacon BootstrapNotifier не вызывает didEnterRegion
Мой код:
private static final String TAG = ".Application";
private final Identifier uuid = Identifier.parse("A1B2C3D4-AAAA-48D2-B060-D0C0D0C0D0C0");
private RegionBootstrap regionBootstrap;
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG, "App has started");
Region region = new Region(TAG, uuid, null, null);
BeaconManager.debug = true;
BeaconManager.getInstanceForApplication(this).getBeaconParsers().add(
new BeaconParser().setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
regionBootstrap = new RegionBootstrap(this, region);
}
@Override
public void didEnterRegion(Region region)
{
Log.i(TAG, "BACKGROUND ACTIVATED");
}
@Override
public void didExitRegion(Region region) {
}
@Override
public void didDetermineStateForRegion(int i, Region region) {
}
}
А как насчет функции regionBootstrap? Работает ли эта функция? Потому что в документах API он говорит: «Класс, позволяющий пользователю установить фоновый запуск приложения, когда пользователь входит в зону маяка». Это работает в фоновом режиме? Beacause я получаю только вызов didEnterRegion, когда я запускаю приложение. – Juraj
Да, RegionBootstrap запустит приложение в фоновом режиме, и 'didEnterRegion' вызывается, когда обнаружен маяк, соответствующий указанному региону. Специфика того, как долго это займет, зависит от состояния вашего приложения. См. Здесь: http://altbeacon.github.io/android-beacon-library/resume-after-terminate.html – davidgyoung