2016-02-01 5 views
0

В настоящее время я работаю над приложением, которое требует мониторинга iBeacon.iBeacon и iOS 9

Я написал приложение год назад, используя iOS 8.x SDK. Он работал так, как предполагалось, но теперь, через год после этого, тот же код больше не работает (я тестирую его с теми же маяками!).

Обнаружение регионов маяков стало гораздо более непредсказуемым. У этого есть своя воля.

Некоторые маяки обнаруживаются, некоторые просто игнорируются.

Я не нашел ничего подходящего для OpenRadar.

A few people complained about something similar on Apple Dev Forums, но Apple никогда не возвращалась к ним.

Мысли?

Вот как я инициализирую менеджера местоположения.

self.locationManager = [CLLocationManager new]; 
self.locationManager.delegate = self; 

// Worst accuracy is set in order to preserve battery life. 

self.locationManager.desiredAccuracy = kCLLocationAccuracyThreeKilometers; 
self.locationManager.allowsBackgroundLocationUpdates = YES; 

// Required to keep the app living in the background. 
// Background mode "Location Updates" is enabled. 

[self.locationManager startUpdatingLocation]; 
+0

Какова цель вашего приложения? –

+0

@MihirOza Актуально? Это под NDA, и я не могу говорить об этом. –

+0

Вы пробовали использовать другую точность? – UlyssesR

ответ

0

Я думаю, прежде чем вы использовали геозоны или CLC круговые области. Для определения iBeacons базовое местоположение не нуждается в каком-либо из этого кода. Попробуйте установить его так:

self.locationManager = [CLLocationManager new]; 
self.locationManager.delegate = self; 
[self.locationManager startMonitoringForRegion:beaconRegion]; // Where "beaconRegion" is a CLBeaconRegion with a UUID that matches the beacon you want to detect (major & minor optional) 
beaconRegion.notifyEntryStateOnDisplay = YES; 
beaconRegion.notifyOnEntry = YES; 
beaconRegion.notifyOnExit = YES; 

Кроме того, необходимо добавить NSLocationAlwaysUsageDescription к вашему info.plist. Как только все это будет сделано, вы должны начать получать входные и выходные события для своих маяков с помощью этих двух методов:

- (void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region; 
- (void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region; 
Смежные вопросы