Ich wurde beauftragt, etwas Code zu reparieren, der Altbeacon mit iBeacons verwendet. Die Erkennung von Beacons funktioniert gut im Vordergrund, aber nicht im Hintergrund.Verwirrt über RegionBootstrap und wann es zu verwenden ist
In der Aktivität, die in Vordergrundmodus abtastet, auf Eingabe Hintergrund wird die OnStop vom beaconmanager unbind verwendet und dann ein Verfahren, in dem beaconBkgService wie dies nennt:
Aktivitätscode:
protected void onStop() {
super.onStop();
try {
// Do we need to unbind????
iBeaconManager.unbind(this);
beaconBkgService.startScanning();
} catch (Exception e) {
e.printStackTrace();
}
}
beaconBkgService Code:
public class beaconBkgService extends Application implements BootstrapNotifier {
public void startScanning() {
try {
mBeaconManager = BeaconManager.getInstanceForApplication(this);
mBeaconManager.setBackgroundBetweenScanPeriod(3000L);
mBeaconManager.setBackgroundScanPeriod(1000L);
mBeaconManager.setBackgroundMode(true);
if (mRegionBootstrap == null){
mAllBeaconsRegion = new ArrayList<Region>();
for (UserBeacons userBeacon : userBeacons) {
mBeaconsRegion = new Region(userBeacon.identifier, userBeacon.UUID, null, null);
mAllBeaconsRegion.add(mBeaconsRegion);
}
mRegionBootstrap = new RegionBootstrap(this, mAllBeaconsRegion);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Sollte die Aktivität OnStop den Beacon-Manager unbind() aufrufen vor beaconBkgService.startScanning Aufruf () Ich habe es mit und ohne versucht aber kann nichts arbeiten.
Das gewünschte Ergebnis ist, dass wenn die App in den Hintergrund geht, der Scan für 1 Sek. Alle 3 Sek. Dauern sollte, aber die BeaconBkgService didEnterRegion nicht feuert, wenn ein Beacon eingeschaltet ist und die App im Hintergrund ist.
Und wenn ich das zum Laufen bekomme, wie wird die ExitRegion ausgeführt, wenn die Aktivität den Beacon im Vordergrund erkennt, dann schaltet der Benutzer in den Hintergrund und verlässt den Beacon-Bereich? Wird die onExitRegion im beaconBkgService ausgelöst? Ist der Status von Vordergrund zu Hintergrund mit RegionBootstrap?
Danke für die Antwort. Der Hintergrundscan erfolgt in einer anderen Klasse. Public class beaconBkgService erweitert die Anwendung implementiert BootstrapNotifier, so dass es OK sein sollte? – newbie101