Как получить координаты, когда iPhone заблокирован / спать?
-
26-09-2019 - |
Вопрос
Для нормальных ситуаций, didUpdateToLocation
(из ClllocationManager) больше не работает, когда нажата кнопка блокировки / сна, и ваше приложение не может получить дальше newLocation
координаты в заблокированном периоде.
Тем не менее, некоторые приложения могут отслеживать в заблокированном периоде, и они покажут правильный маршрут, когда вы разблокируетесь и смотрите MapView. Очевидно, что есть способы получения координат в заблокированном периоде.
Как получить координаты, когда iPhone заблокирован / спать?
У кого есть намеки и дополнительная информация, пожалуйста, пост. Спасибо.
Решение
Когда iPhone заблокировал его (быстро, но не мгновенно) входит в глубокий сон, который все останавливает. Для того, чтобы предотвратить глубокий сон, есть трюк ...
Играйте в тихий звук каждые 5 секунд. (Честное!) Настройте крошечный файл Silent WAV (или любой любой формат) и играйте на нее на таймере. Телефон никогда не войдет в глубокий сон, и ClllocationManager будет продолжать функционировать, как ожидалось.
Другие советы
Еще один способ сделать это в iOS4 +, без использования метода воспроизведения-бесшумного звука:
Добавлять
<key>UIBackgroundModes</key>
<array>
<string>location</string>
</array>
В вашей info.plist. Подробнее: Uibackgroundmodes.