Приложение iBeacon неправильно определяет местоположение маяка

Я разрабатываю приложение приемника ibeacon. Я думаю, он неправильно использует местоположение и не обнаруживает маяк... Я уже видел много решений, но ничего не работает, поэтому спрашиваю еще раз...

Вот мой код

self.uuid = [[NSUUID alloc] initWithUUIDString:myuuid];
self.major = 1;
self.minor = 1;
self.region = [[CLBeaconRegion alloc] initWithProximityUUID:self.uuid major:1 minor:1 identifier:@"com.appcoda.testregion"];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager requestAlwaysAuthorization];

Я скачал приложение с сайта http://www.appcoda.com/ios7-programming-ibeacons-tutorial/ в качестве маяка


person Human    schedule 21.12.2016    source источник
comment
Ваш вопрос не ясен, какой из них вам нужно использовать местоположение?   -  person Arasuvel    schedule 21.12.2016
comment
Для обнаружения маяка я использовал CLLocation. В настройках я установил местоположение всегда   -  person Human    schedule 21.12.2016
comment
Для приложения-приемника @Arasuvel   -  person Human    schedule 21.12.2016
comment
@SivagamiSundari Какие маяки вы используете Estimote?   -  person Parth Adroja    schedule 21.12.2016
comment
я использую iBeacons   -  person Human    schedule 21.12.2016
comment
Вы знаете, что ваш передатчик работает? Можете ли вы увидеть маяк с готовым приложением derectorcapp, таким как Locate? itunes.apple.com/us/app/locate-beacon/ id738709014?mt=8   -  person davidgyoung    schedule 21.12.2016
comment
Я проверил приложение, которое действует как маяк, с образцом приложения, доступным по адресу raywenderlich.com/66584. /ios7-ibeacons-tutorial работает   -  person Human    schedule 21.12.2016


Ответы (1)


В вашем коде отсутствуют методы мониторинга и ранжирования. Вам нужно создать регион, в котором вы хотите обнаружить маяк.

let beaconRegion = CLBeaconRegion(proximityUUID: item.uuid,
                                            major: item.majorValue,
                                            minor: item.minorValue,
                                       identifier: item.name)

И тогда вам нужно запустить мониторинг для региона, и вы получите маяки в методе делегата ранжирования.

  let beaconRegion = beaconRegion
  locationManager.startMonitoringForRegion(beaconRegion)
  locationManager.startRangingBeaconsInRegion(beaconRegion)
person Parth Adroja    schedule 21.12.2016
comment
@SivagamiSundari Реализовали ли вы методы делегата? - person Parth Adroja; 21.12.2016
comment
да. didEnterRegion, didExitRegion и didRangeBeacons, которые я добавил, этого достаточно, верно? - person Human; 21.12.2016
comment
Вы установили делегата менеджера местоположения на себя? И убедитесь, что ваш Bluetooth включен на устройстве, а не в режиме полета. - person Parth Adroja; 21.12.2016
comment
да я правильно поставил - person Human; 21.12.2016
comment
Пытаюсь обновить текст метки при обнаружении маяка. Но методы делегата не вызываются - person Human; 21.12.2016
comment
@SivagamiSundari Тогда нужно проверить код. Вы используете виртуальный маяк? - person Parth Adroja; 21.12.2016