Определение того, включил ли пользователь / отключил службы определения местоположения в фоновом режиме в iOS

#ios #objective-c #cllocationmanager #location-services

#iOS #objective-c #cllocationmanager #службы определения местоположения

Вопрос:

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

Есть ли какой-либо способ перезапустить его в фоновом режиме? Мне нужно, чтобы это работало в iOS 6.0

Заранее спасибо

Ответ №1:

попробуйте

 public override void DidEnterBackground (UIApplication application) {
  int taskID = UIApplication.SharedApplication.BeginBackgroundTask( () => {});
  new Task ( () => {
    DoWork();
    //UIApplication.SharedApplication.EndBackgroundTask(taskID);
  }).Start();
}
  

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

 - (BOOL)multitaskingAvailable
{
  UIDevice *device = [UIDevice currentDevice];
  BOOL areBackgroundTasksSupported = NO;
  if ([device respondsToSelector:
      @selector(isMultitaskingSupported)])
       areBackgroundTasksSupported = device.multitaskingSupported;
  return areBackgroundTasksSupported;
}
  

Источник

Комментарии:

1. только в ios 7 вы можете получать удаленные уведомления