Die Überwachung der IBeacon-Region funktioniert nicht einheitlich auf allen Geräten
Wenn ich mit einer einfachen App teste, um die Überwachung der Beacon-Region zu testen, erhalte ich anscheinend sehr inkonsistente Ergebnisse, abhängig vom Gerät (nicht vom Gerätemodell, dem spezifischen Gerät). Das Problem ist, dass ich das nicht erhalteCLRegionStateInside
Zustand in der Region nachrequestStateForRegion
unddidEnterRegion
wird auf diesen Geräten überhaupt nicht angerufen.startRangingBeaconsinRegion
: funktioniert gut, aber um Energie und Verarbeitung zu sparen, wird empfohlen, die Reichweite erst zu starten, wenn diedidEnterRegion
: Methode wird aufgerufen. Ich habe dies auf 6 Geräten getestet und es funktioniert auf der Hälfte (iPhone 5) und nicht auf einem iPhone 5, einem5S
und ein4S
.
Die Leuchtfeuer, die ich benutze, sind diekontakt.io
Leuchtfeuer.
Dies ist der Code zum Einrichten der Regionsüberwachung
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:BEACON_UUID];
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
identifier:@"regionIdentifier"];
region.notifyOnEntry = YES;
region.notifyOnExit = YES;
region.notifyEntryStateOnDisplay = YES;
[self.locationManager startMonitoringForRegion:region];
[self.locationManager requestStateForRegion:region];
//If I enable this line, ranging starts on all devices
// [self.locationManager startRangingBeaconsInRegion:region];