我正在使用air定位示例並僅通過uuid監視iBeacons。當我得到輸入的區域事件時,如果我只是在尋找uuid,我似乎無法從觸發該事件的信標/區域獲得主要和次要信息(如果我正在監視uuid,指定主要和次要) - 有沒有人知道一種方法來做到這一點/我錯過了什麼?iBeacon:獲取主要和次要 - 僅查找uuid
我並不真的要開始爲 - 似乎並不像我應該需要..
(用例是說很多商店都用相同的UUID的包,然後發出有關該商店的相關信息)
這裏基本上我做什麼(通過查詢主要和次要獲得)OS通知:
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
identifier:@"blah"];
region.notifyOnEntry = YES;
region.notifyOnExit = YES;
region.notifyEntryStateOnDisplay = YES;
[self.locationManager startMonitoringForRegion:region];
在應用程序委託
然後:
- (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...
}
非常感謝!
非常感謝David,這真的很有幫助。同樣感謝您的其他SO回答,這些回答非常寶貴。 – Matthew
好帖子。然而,一個小修正。您在didEnterRegion/didExitRegion調用中獲得的region對象與您用於註冊的CLBeaconRegion對象不同 - 它是一個副本。我知道這是因爲一開始我嘗試使用表單的代碼if(region == regionImTracking)並且比較失敗。我登錄了兩個地區,他們的地址不同,而他們的所有設置都匹配。 –
啊,重要的是要知道,謝謝! – davidgyoung