Xamarin — IOS — CLLocationManager: получать обновления местоположения, когда iphone заблокирован или находится в спящем режиме

Я пытаюсь найти эту информацию, но пока безуспешно. Я знаю, что CLLocationManager имеет фоновые возможности. Это довольно хорошо задокументировано. Я хотел бы знать, правильно ли настроен CLLocationManager для фонового режима, будет ли он запускать стандартные обновления местоположения, даже когда телефон заблокирован и находится в спящем режиме? и если да, предположим, что мое приложение не убито, оно его будит? Могу ли я выполнить код для обработки исправления местоположения? Я могу сделать тест, но я боюсь, что из-за недостатка знаний я получу неверные или неполные выводы. Вот поэтому и спрашиваю у сообщества.

Спасибо за ваше время


person Rabih Sarieddine    schedule 10.04.2018    source источник


Ответы (2)


LocationManager = new CLLocationManager();
LocationManager.AllowsBackgroundLocationUpdates = true;

У вас есть от AllowsBackgroundLocationUpdates до true, чтобы заставить его работать в спящем или фоновом режиме.

person Bikash    schedule 11.04.2018
comment
Да, это то, что у меня есть до сих пор: if(UIDevice.CurrentDevice.CheckSystemVersion (8, 0)) { locMgr.RequestAlwaysAuthorization (); // работает в фоновом режиме //locMgr.RequestWhenInUseAuthorization(); // только на переднем плане } if (UIDevice.CurrentDevice.CheckSystemVersion (9, 0)) { locMgr.AllowsBackgroundLocationUpdates = true; } - person Rabih Sarieddine; 11.04.2018

  1. Да, он может работать в фоновом режиме.
  2. Да, если вы запустите его в фоновом режиме, оно разбудит ваше приложение на 30 секунд.
person David S.    schedule 10.04.2018
comment
Спасибо. Означает ли это, что когда CLLocationManager запускает событие LocationsUpdated, у меня есть 30 секунд выполнения кода? я не могу найти документацию по этим 30 секундам. У вас есть ключ? Спасибо за ваше время - person Rabih Sarieddine; 11.04.2018