Уведомления на основе местоположения не вызывают в режиме ожидания - PullRequest
2 голосов
/ 06 марта 2012

Я новичок в приложениях, основанных на местоположении. Мое требование состоит в том, чтобы устройство отображало уведомления о местоположении, когда пользователь достигает выбранного региона. Я реализовал отлично. Это приложение работает на фоне также. Теперь мое новое требование состоит в том, чтобы устройство отображало уведомления о местоположении даже после завершения работы приложения. [Я видел пару приложений для iPhone, работающих с этой функциональностью. Приложения "Напоминание" и "Locationizer"].

Можете ли вы проверить мои шаги реализации следующим образом.

  • Запустите приложение.
  • Выбранная кнопка оповещения о местоположении.
  • Вызвали следующие API-интерфейсы CLLocationManager для мониторинга моего региона.

    [locationManager startMonitoringForRegion: @ "MyRegion" требуемая точность: kCLLocationAccuracyBest]; [locationManager startMonitoringSignificantLocationChanges];

  • Выйти из приложения [Запуск в фоновом режиме].

  • Я получаю уведомления о местонахождении оповещений правильно.

Здесь новое требование.

  • Запустите приложение.
  • Выбранная кнопка оповещения о местоположении.
  • Вызвали следующие API-интерфейсы CLLocationManager для мониторинга моего региона.

    [locationManager startMonitoringForRegion: @ "MyRegion" требуемая точность: kCLLocationAccuracyBest]; [locationManager startMonitoringSignificantLocationChanges];

  • Убить приложение. [теперь приложение не работает в фоновом режиме]

  • Приложение должно отображать уведомление на основе местоположения, когда пользователь достигает местоположения.

Как мне реализовать эту логику?

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Привет, друзья! Я нашел решение этой проблемы.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

id locationValue = [launchOptions objectForKey:UIApplicationLaunchOptionsLocationKey];
if (locationValue)
{
      [self initLocationMonitoring]; // this will invoke CLLocationManager
}

return YES;
}
0 голосов
/ 06 марта 2012

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

...