Я экспериментировал с Android Beacon Библиотеку мониторинга IBeacon в фоновом режиме с помощью этого кода:Запуск приложения, когда IBeacon обнаружен
public class IBeaconBootstrap extends Application implements BootstrapNotifier {
private RegionBootstrap regionBootstrap;
@Override
public void onCreate() {
super.onCreate();
Log.d("IBeaconBootstrap", "App started up");
// wake up the app when any beacon is seen (you can specify specific id
// filers in the parameters below)
Region region = new Region("MyRegion", null, null, null);
regionBootstrap = new RegionBootstrap(this, region);
// This is for Apple compatible iBeacons
BeaconManager.getInstanceForApplication(this).getBeaconParsers().add(new BeaconParser().setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
}
@Override
public void didDetermineStateForRegion(int state, Region region) {
Log.d("Boostrap didDetermineStateForRegion", "Region " + region.toString());
}
@Override
public void didEnterRegion(Region region) {
Log.d("Boostrap didEnterRegion", "Got a didEnterRegion call");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
}
@Override
public void didExitRegion(Region region) {
Log.d("Boostrap didExitRegion", "Got a didExitRegion call");
}
}
, приложение идет на переднем плане, когда обнаруживает IBeacon, если он работает, но ничего не происходит, если приложение не работает. Предполагается ли, что ожидаемое поведение или приложение должно быть запущено, если оно не запущено?
Благодарим вас за ответ. Меня интересует сценарий №3. Пользователь запускает приложение, использует его, а затем убивает его. Если я правильно понял ваш ответ, после того, как приложение было убито, оно больше не запускается, если пользователь не включит/отключит источник питания или не перезагрузит устройство. Правильно? Другими словами, чтобы приложение постоянно знало iBeacons, оно должно работать в фоновом режиме. Когда ibeacon находится в зоне действия, он может быть перенесен на передний план автоматически. – Fab
Исправить. Я обновил свой ответ ссылкой на более подробное объяснение того, как это работает и почему: http://altbeacon.github.io/android-beacon-library/resume-after-terminate.html – davidgyoung