Ich verwende das Beispiel für die Luftortung und die Überwachung von iBeacons nur mit uuid. Wenn ich das Ereignis "Region betreten" erhalte, kann ich nicht das Major und Minor von der Beacon/Region, die das Ereignis ausgelöst hat, bekommen, wenn ich nur nach der UUID suche (ich kann, wenn ich auf eine UUID mit überwache) spezifizierte Dur und Moll) - weiß jemand einen Weg dies zu tun/fehle ich etwas?iBeacon: Major und Minor erhalten - nur nach Uuid suchen
Ich will nicht wirklich hin beginnen - scheint nicht, wie ich brauchen sollte ..
(Der Anwendungsfall für viele Geschäfte alle mit Baken mit derselben UUID sagen, dann eine erteilende OS-Benachrichtigung mit den relevanten Informationen zu diesem Speicher (erhalten durch die Haupt- und Neben Abfrage))
Hier ist im Grunde, was ich tun:
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
identifier:@"blah"];
region.notifyOnEntry = YES;
region.notifyOnExit = YES;
region.notifyEntryStateOnDisplay = YES;
[self.locationManager startMonitoringForRegion:region];
Dann in der AppDelegate:
- (void) locationManager:(CLocationManager*)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion*)region {
// assume for now its the iBeacon
CLBeaconRegion *beaconRegion = (CLBeaconRegion*) region;
beaconRegion.major // hasn't been set...
}
Vielen Dank!
Vielen Dank David, das ist wirklich hilfreich. Danke auch für Ihre anderen SO Antworten, die von unschätzbarem Wert waren. – Matthew
Guter Beitrag. Eine kleine Korrektur jedoch. Das Regionsobjekt, das Sie in den Aufrufen didEnterRegion/didExitRegion erhalten, ist nicht dasselbe CLBeaconRegion-Objekt, das Sie für die Registrierung verwendet haben - es handelt sich um eine Kopie. Ich weiß das, weil ich zuerst versucht habe, den Code der Form if (region == regionImTracking) zu verwenden und der Vergleich fehlgeschlagen ist. Ich loggte die beiden Regionen und ihre Adressen waren unterschiedlich, während alle ihre Einstellungen übereinstimmten. –
Ah, wichtig zu wissen, danke! – davidgyoung