2013-03-22 1 views
1

Я использую GeoFencing, чтобы установить регион и выполнить некоторую задачу, когда пользователь вводит или покидает регион. Bt он не работает для меня, я использую gollowing кодGeoFencing on iOS

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(some values,some values); 
    CLRegion *region = [[CLRegion alloc]initCircularRegionWithCenter:coord radius:15.0 identifier:@"SF"]; 
    [locationManager startMonitoringForRegion:region desiredAccuracy:kCLLocationAccuracyBest]; 

Но ни один из делегатов didEnterRegion и didExitRegion называться, когда я закрыть приложение и приложение является мониторинг и я отойти от регионе или введите.

+0

Что вы имеете в виду с близким ?? отправить на задний план через домашнюю кнопку или закрыть приложение? Завершение приложения не запускается. – AlexWien

+0

он не будет вызван немедленно, есть расстояние до буфера, в котором он все равно не будет вызывать уведомление. – Pochi

ответ

3

Вы определяете радиус 15 м. Это слишком мало. Сначала попробуйте 50 м или более. Посмотрите на приложение карты, если вы действительно вошли в этот регион.
Кроме того, я надеюсь, что вы имели в виду «отправить на задний план», а не закрывать.
Убедитесь, что вы установили, что ваше приложение разрешено запускать в фоновом режиме? (Через PLIST)

Update:

Наконец, оказалось, что вы завершили приложение. Тогда, конечно, вы больше не получите никаких событий в loctaion.
Решение: Не завершайте его двойным щелчком по кнопке «домой», выбрав белый крест, просто закройте его одним нажатием кнопки «домой», после чего у него есть шанс бежать в фоновом режиме.

Update2: Даже когда приложение было прекращено, ИОС возобновится, когда он прописал службы мониторинга местоположения: от CllLocationManager Class Reference

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

+0

Я разрешил приложение работать в фоновом режиме, который работает нормально. и я полностью закрыл приложение, не работает ли Geofencing, когда приложение полностью закрыто? Я вижу значок GeoFencing в строке состояния и в настройках. – Hassy

+0

Вы закрываете его с помощью двойного щелчка на домашней кнопке и нажатием на крест? Это прекращается, тогда ничего не работает в вашем приложении. Это не фон! – AlexWien

+0

:) да, я завершаю приложение. soo есть способ автоматически разбудить мое приложение, когда пользователь входит в регион? – Hassy

1

Добавить CLLocationManagerDelegate в файл заголовка. убедитесь, что у добавил

locationManager.delegate = self; 

попробуйте увеличить радиус и проверить.

+0

Да, я сделал это. Может ли радиус быть больше, чем более 100? – Hassy

1

Прежде всего, увеличьте радиус, который вы указываете для этого конкретного места, и еще раз проверьте, не работает ли он, выполнив несколько простых шагов, предусмотренных в этом tutorial, вы можете легко реализовать Geo-Fencing в своем приложении.

Ссылка: Apple Documentation

0

Вы определяете радиус 15м. Это слишком мало. Сначала попробуйте 50 м или более. Посмотрите на приложение карты, если вы действительно вошли в этот регион. Кроме того, я надеюсь, что вы имели в виду «отправить на задний план», а не закрывать. Убедитесь, что вы установили, что ваше приложение разрешено запускать в фоновом режиме? (через plist)