2016-08-24 2 views
0

Ich habe Google Nearby API für mein Ziel-C-Projekt eingerichtet, um nach Beacons zu suchen.NearbyAPI iOS erkennt kein Beacon bereits im Bereich

Die App erkennt die Beacons gut, wenn sie in den Bereich eines Beacons bewegt, aber es funktioniert nicht, wenn ich die App starte, wenn ich bereits in Reichweite bin. Ich muss vom Leuchtfeuer weggehen und zurückkehren.

Ich verwende keine Hintergrundabtastung. Die lib Version ich benutze, ist: 0.10.0

Mein Code ist:

[GNSMessageManager setDebugLoggingEnabled:YES]; 

_messageManager = [[GNSMessageManager alloc] initWithAPIKey:@"..."]; 

_beaconSubscription = [_messageManager subscriptionWithMessageFoundHandler:^(GNSMessage *message) { 
    NSLog(@"beacon found: %@",message); 
    ... 
} messageLostHandler:^(GNSMessage *message) { 
    NSLog(@"beacon lost: %@",message); 
    ... 
} paramsBlock:^(GNSSubscriptionParams *params) { 
    params.deviceTypesToDiscover = kGNSDeviceBLEBeacon; 
    params.beaconStrategy = [GNSBeaconStrategy strategyWithParamsBlock:^(GNSBeaconStrategyParams *params) { 
     params.includeIBeacons = YES; 
    }]; 
}]; 

Ich weiß über den Core Location Rahmen didEnterRegion/didExitRegion Methoden, die nur aufgerufen werden, wenn die Grenzen einer Kreuzung Beacon Region und dass ich didDetermineState Methode verwenden kann, aber wie funktioniert die InheaseAPI auf der Innenseite mit diesen und wie kann ich die App erkennen die Beacons bereits in Reichweite beim Start mit ihm?

Antwort

0

Dies ist in der Tat ein Fehler in der Art, wie Nearby Messages iBeacon Regionen überwacht. Es verwendet didEnterRegion/didExitRegion, und wie Sie sagten, wenn Sie bereits in einer Region sind, wenn das Scannen beginnt, wird didEnterRegion nicht aufgerufen.

Ich habe mit der Verwendung von didDetermineState experimentiert, und mit ein bisschen Arbeit kann ich jetzt mit diesem Fall umgehen. Wir werden dies in die nächste Bugfix-Version aufnehmen.

In der Zwischenzeit gibt es einen Trick, den Sie verwenden können, um das Problem beim Testen Ihrer App zu vermeiden: Setzen Sie Ihr Beacon in ein Metallgehäuse (einen Faraday-Käfig) und entfernen Sie es aus dem Gehäuse, nachdem Ihre App nach Beacons sucht. Dies simuliert die Bewegung in den Beacon-Bereich. Ich benutze einen kleinen Cocktail Shaker für meinen Faraday-Käfig, aber eine kleine Menge Aluminiumfolie funktioniert auch.

+0

Wir haben gerade die Version 1.1.0 von [Nearby Messages] (https://cocoapods.org/pods/NearbyMessages) mit dem iBeacon Scan-Fix veröffentlicht. Lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben. –

Verwandte Themen