Проблема, которую вы видите, заключается в том, что приложение-приемник начинает «выбирать» маяки только в том случае, если обнаруживает, что вы вошли в регион. Если вы сначала запускаете вещатель, вы уже находитесь в регионе маяка, поэтому ваше приложение может не начать ранжирование. Это предложение в статье является подсказкой:
Запустите приложение приемника и отнесите его подальше от радиомаяка, а затем подойдите к нему, чтобы имитировать вход в регион.
Мониторинг для маяка означает, что ваше приложение будет получать уведомления только тогда, когда вы входите или выходите из определенного вами региона. Радиус этой области может составлять до ~ 50 м, поэтому, если вы просто сидите рядом с приемником, вы не должны вызывать одно из этих событий, пока не выключите и не включите приемник снова. Мониторинг может осуществляться во время работы приложения в фоновом или на переднем плане.
Расстояние для маяков в регионе означает, что приложение будет получать уведомление один раз в секунду со списком всех маяков, которые устройство может видеть в указанном регионе (в порядке убывания расстояния). . Ранжирование вызовет метод locationManager:didRangeBeacons:inRegion:
вашего делегата CLLocationManager
. Список маяков будет постоянно обновляться по мере вашего перемещения внутри/вне региона и изменения вашего расстояния до маяков. Ранжирование должно происходить, пока ваше приложение находится на переднем плане.
Если вы хотите, чтобы приложение постоянно прослушивало маяки, попробуйте позвонить
[self.locationManager startRangingBeaconsInRegion:self.beaconRegion];
в вашем методе viewDidLoad:
, а не в вашем методе didEnterRegion:
.
person
James Frost
schedule
27.01.2014