2013-08-19 2 views
3

Я работаю с двумя устройствами iOS, один из них настроен как iBeacon.CBPeripheralManager Задержки stopAdvertising/Location Manager диапазоны остановлены iBeacon

Я начиная маяк со вторым устройством IOS и может захватить его состояние с помощью:

-(void)locationManager:(CLLocationManager *)manager 
     didRangeBeacons:(NSArray *)beacons 
       inRegion:(CLBeaconRegion *)region{} 

Когда я перестану рекламу на IBeacon, менеджер место на втором устройстве продолжает колебаться/признать IBeacon в течение 5-10 секунд.

Ожидается ли такое поведение?

Требуется ли периферийное диспетчеру, чтобы свернуть?

ответ

4

У меня есть установка со специальным оборудованием BTLE, работающим как iBeacons. На самом деле это занимает 20-30-е годы, чтобы прекратить называть locationManager:didRangeBeacons:inRegion: и после того, что он называет locationManager:didExitRegion:

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

Если вы проверили свойство близости маяка, вы заметите, что это CLProximityUnknown за это время. Возможно, вы можете сделать что-то с этим состоянием, чтобы делать то, что вам нужно.