Я тестировал новые API Motion Activity Manager (CMMotionActivityManager
). Я хочу создать приложение, которое может получать и обрабатывать обновления движения из startActivityUpdatesToQueue
пока приложение не работает на переднем плане. Я правильно получаю обновления движения (стационарные, ходьба, бег, автомобильный, неизвестный), пока приложение находится на переднем плане, но как только оно уходит в фоновый режим (и, следовательно, приостанавливается), приложения перестают получать обновления движения.
Описание класса CMMotionActivityManager: "Этот метод инициирует асинхронное отслеживание данных движения. При вызове этого метода диспетчер активности движения выполняет блок обработчика в указанной очереди, сообщая о текущем действии движения для устройства. После этого диспетчер активности движения выполняет блок обработчика только при изменении данных движения. Блок обработчика выполняется максимально эффективно, и обновления не доставляются, пока ваше приложение приостановлено. Если обновления поступили, когда ваше приложение было приостановлено, последнее обновление доставляется в ваше приложение, когда он возобновляет выполнение. Чтобы получить все обновления, которые произошли, когда ваше приложение было приостановлено, используйте queryActivityStartingFromDate:toDate:toQueue:withHandler:
method. "
Я хочу, чтобы мое приложение работало в фоновом режиме и получало данные о движении (в режиме реального времени). Прямо сейчас единственный способ сохранить приложение в фоновом режиме - это использовать фоновые сервисы, но "обновления движения" отсутствуют в списке разрешенных фоновых сервисов:
Рекомендации по обзору App Store:
" 2.5.4 Многозадачные приложения могут использовать фоновые сервисы только по назначению: VoIP, воспроизведение аудио, местоположение, завершение задачи, локальные уведомления и т.д."
Я не хочу, чтобы обновления местоположения (GPS) были включены постоянно (для экономии заряда аккумулятора). Если я рассчитываю на постоянные обновления местоположения, но выключаю GPS, приложение будет приостановлено.
Пожалуйста, дайте мне знать, как сохранить мое приложение в фоновом режиме и получать обновления активности движения. Должен быть способ сделать это: я попробовал приложение Strava.... даже когда приложение находится в фоновом режиме, оно отключает GPS, когда пользователь приостанавливает работу. Когда пользователь возобновляет работу, он автоматически включает GPS (все это, когда приложение находится в фоновом режиме)... это, вероятно, означает, что приложение работает в фоновом режиме и активно получает обновления активности движения, даже когда GPS выключен.