2014-09-27 16 views
7

Ich habe3 Estimote Beacons, die mit dem App Store geschätzt App gesehen werden kann.Apple AirLocation Demo App reicht nicht zeigt Beacons

Jetzt versuche ich, das Apple-Demo-Anwendung AirLocation AirLocate

Ich habe mich verändert die UUID in der APLDefaults.m Datei auf den Standard Estimote UUID _supportedProximityUUIDs = @[[[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]];

ich die Region aktiviert haben zu laufen zu beginnen startMonitoringForRegion als dies sagt stackoverflow.

Aber sie werden nicht angezeigt, hast du das gesehen? Oder fehlt mir etwas Spezifisches.

Grüße

Antwort

29

Das Problem ist, dass AirLocate für iOS7 geschrieben wurde, und in iOS8 hat das Berechtigungsmodell für iBeacons und anderen Standort Operationen geändert. Damit das Programm unter iOS 8 funktioniert, wenn es aus XCode 6 kompiliert wird, müssen Sie Code hinzufügen, der in Ihrem AppDelegate eine Berechtigung anfordert. Wie folgt aus:

if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { 
    [self.locationManager requestAlwaysAuthorization]; 
} 

Dies wird den Benutzer auffordern, zu Standort Operationen einschließlich Baken zu autorisieren. Sie müssen auch die Datei info.plist für die App bearbeiten und einen neuen Zeichenfolgenschlüssel namens NSLocationAlwaysUsageDescription mit einem Wert wie "Diese App benötigt Zugriff auf Standortdienste" hinzufügen, damit das Betriebssystem den Benutzer zur Eingabe dieser Berechtigung auffordern kann.

Nachdem Sie Ihre App ausgeführt haben, können Sie in den Einstellungen überprüfen, ob diese Berechtigung ordnungsgemäß erteilt wurde.

+1

Ich fand ich musste auch für Benachrichtigungen in den AppDelegate wie dieser Beitrag für den Benutzer um Erlaubnis bitten: http://stackoverflow.com/a/24161903/1735721 oder Sie gewonnen Erhalte nicht die gleichen UI wie Nachrichten wie in 7. Ich musste Haltepunkte im Code setzen, um zu sehen, dass die Region Benachrichtigungen tatsächlich passiert. Und während es jetzt in 8 funktioniert habe ich bisher festgestellt, dass es nicht gut funktioniert ... erst nach langer Zeit eine Regionsbenachrichtigung bekommen. – DennisWelu

+0

Es ist auch erwähnenswert, dass das Beispiel von Apple falsche Benachrichtigungsschlüssel hat; http://nevan.net/2014/09/core-location-manager-changes-in-ios-8// –

2

Ein anderes Problem, das ich in iOS 9 festgestellt habe, ist, dass die Kalibrierung manchmal nicht funktioniert. Scheint ein NSNumber Umwandlungsproblem zu sein. Die folgende Bearbeitung in APLCalibrationCalculator.m es fest: -

//measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] integerValue]; 
    measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] intValue];