2015-04-14 2 views
0

Я не получаю информацию о входе и выходе региона для зон маяка. Это, как я добавить маяк к monitoredRegions:Менеджер местоположения не отслеживает Маяки

NSUUID *uuid = [[NSUUID alloc] initWithUUIDString: beacon.UUID]; 
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:  uuid major: (CLBeaconMajorValue) beacon.major  minor: (CLBeaconMajorValue) beacon.minor  identifier:  @"SOME IDENTIFIER"]; 

[_locationManager startMonitoringForRegion: region]; 

и события:

- (void) locationManager: (CLLocationManager *) manager didEnterRegion: (CLRegion *) region 
{ 
    NSLog(@"entered beacon region"); 
} 

- (void) locationManager: (CLLocationManager *) manager didExitRegion: (CLRegion *) region 
{ 
    NSLog(@"exited beacon region"); 
} 

Ни один из этих делегированных событий не называются для этого региона маяка.

Я тестировал это с географическими регионами, и он работает, но он просто не работает для моего маяка. Кроме того, я тестировал ранжирование на этом же маяке, который работает.

Есть ли какие-либо известные проблемы с мониторингом маяков?

Большое спасибо

+0

Для всех, у кого есть эта проблема, я обнаружил, что файл plist должен быть обновлен еще несколькими атрибутами в iOS8.2 (возможно, ранее): в свойство «Необходимые фоновые режимы» добавить 2 новых Элементы: «Приложения разделяют данные с использованием CoreBluetooth» «Регистры приложений для обновлений местоположения» (это в дополнение к уже необходимым свойствам: NSLocationWhenInUseUsageDescription и/или NSLocationAlwaysUsageDescription – ildsarria

ответ

1

Привет @ldsarria Проверьте мои шаги его работу для меня

Шаг 1: Set delgate в .h файле CLLocationManagerDelegate

Шаг 2:

locationManager = [[CLLocationManager alloc] init]; 
     locationManager.delegate = self; 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
     locationManager.distanceFilter = kCLDistanceFilterNone; 

Шаг 3:

NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"SOME IDENTIFIER"]; 
     CLBeaconRegion *region = [[CLBeaconRegion alloc] 
     initWithProximityUUID:uuid identifier:@"com.test.abc"]; 
       region.notifyEntryStateOnDisplay =YES; 
       [locationManager startMonitoringForRegion:region]; 

Шаг 4: Set NSLocationAlwaysUsageDescription = "Это приложение нуждается ваше местоположение, чтобы охотиться клад."

Cheers !!!

+0

Привет, mshau, большое спасибо, у меня было это, но фактическая проблема была два атрибута, которые необходимы в plist для свойства «Необходимые фоновые режимы»: «Файлы приложений совместно используют CoreBluetooth» и «Регистры приложений для обновления местоположения» – ildsarria

Смежные вопросы