2016-11-05 2 views
0

я должен использовать estimote местоположение маяка, iPhone 5S, Ios версии 10.didExitRegion: от 1,5 до 2 минут задержки вызывается, когда мое приложение будет убит или в фоновом режиме в ИО 10

didEnterRegion: метод, называемый также от 30 до 40 секундная задержка.

Мне нужно использовать нижеприведенный код для мониторинга ibeacon.

NSUUID *uuid = [[NSUUID alloc] initWithUUIDString:@"CFC52BF4-FD33-4569-B4B5-5E9C220514A2"]; 


CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:uuid major:1 identifier:@"Technostacks23"]; 

region.notifyOnEntry = YES; 
region.notifyOnExit = YES; 
// launch app when display is turned on and inside region 
region.notifyEntryStateOnDisplay = YES; 

if ([CLLocationManager isMonitoringAvailableForClass:[CLBeaconRegion class]]) 
{ 
    [_locationManager startMonitoringForRegion:region]; 
    [_locationManager startRangingBeaconsInRegion:region]; 

} 

[self.locationManager startUpdatingLocation]; 



#pragma mark - CoreLocation Delegate method 
-(void)locationManager:(CLLocationManager *)manager didEnterRegion:(CLRegion *)region { 
//local notification fire 
} 

    -(void)locationManager:(CLLocationManager *)manager didExitRegion:(CLRegion *)region { 
//local notification fire 
} 

, пожалуйста, ребята скажите мне, как решить этот сценарий.

Благодаря

+0

Это не универсальная проблема на IOS 10. Я провел много испытаний на устройствах iOS 10 и, как правило, вижу очень быстрое время обнаружения фона. Я бы попытался перезагрузиться и uni-installing других приложений маяка помимо вашего собственного, чтобы освободить слоты аппаратного ускорения. – davidgyoung

+0

Спасибо @davidgyoung. –

ответ

0

Я не думаю, что вы можете контролировать регион в то же время вы в диапазоне. У меня была эта проблема на экране, который я сделал, где хотел показать пользователю, находятся ли они в зоне действия маяка. Мне пришлось прекратить мониторинг, пока они не покинули экран, а затем перезапустите мониторинг. Если вам не нужны события для ранжирования (как близко пользователь к Маяку), я оставил бы эту строку, нет необходимости получать звонки -didEnter и -didExit. Вам также не нужно будет -startUpdatingLocation. Это только для активных вызовов местоположения.

События для входа обычно срабатывают сразу же. События выхода имеют задержку 20-30 секунд, как только вы потеряете сигнал к маяку.

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

+0

Спасибо @Bill за ответ –

0
  1. Вызовите startRangingBeaconsInRegion метод в методе didEnterRegion делегата, так он не будет составлять для маяков, когда он уже не в регионе маяки это поможет в мощности и батареи потребления и я считаю, что это ускорит обнаружение региона немного немного.

  2. Редактирование рекламного интервала маяка составляет 350 мс или меньше.

  3. Зайдите на вкладку «Настройки iPhone» для приложений, разрешающих фоновое обновление и расположение приложений. Всегда и просто отменяйте их, чтобы они не разрешали и не проводили проверку, если бы была разница в производительности обнаружения.

Но во всех случаях 30 - задержка 40 сек я считаю нормальной в зависимости от количества приложений, которые уже обработок в фоновом режиме и выбегающие ресурсы плюс это было бы еще лучше, в зависимости от модели приложения к начните уведомлять о записи в регионе через пару секунд, чтобы убедиться, что он находится в регионе и не просто прошел мимо так быстро «Я говорю, например, о супер-рыночной модели».

Но если это не ваш случай, и вы хотите обнаружить регион, просто пройдя мимо, я думаю, что самое быстрое, что вы можете получить, будет составлять 15-20 секунд в зависимости от возможностей вашего устройства, скорости, других приложений для фоновой обработки и рекламный интервал времени маяков.

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