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];

Antworten auf die Frage(2)

Ihre Antwort auf die Frage