Получение данных GPS в фоновом режиме на iOS с приложением Qt - PullRequest
0 голосов
/ 08 июня 2019

Обновления местоположения перестают доставляться приложению в фоновом режиме примерно через 20 минут. Приложение не закрывается, потому что когда я нажимаю на значок приложения, оно возвращается из фона в состояние, которое я оставляю, а затем обновления начинают поступать снова. Я также вижу, что в правом верхнем углу панели задач есть маленькая стрелка, когда она отображается, я получил обновления, когда он исчезает, я не получаю обновления. Я получаю данные GPS каждые 5 секунд, сохраняю их в какой-то очереди и каждую минуту я подключаюсь к своему серверу через сокет tcp и отправляю эти обновления. Когда исчезает верхняя правая стрелка, мое приложение больше не подключается к серверу (и должно работать даже с пустыми данными), поэтому я предполагаю, что приложение находится в режиме ожидания.

Я написал приложение в Qt / QML, а затем преобразовал проект в XCode. Я проверил «Фоновые режимы» (Обновления местоположения, Фоновая выборка) в разделе «Возможности». У меня в plist файле UIBackgroundModes выборка, местоположение. У меня также есть NSLocationWhenInUse NSLocationAlways и NSLocationAlwaysAndWhenInUse UsageDescription And App в системе проверки имеет настройки-> myapp-> Адрес-> Всегда

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

void IosLockHelper::setTimerDisabled() {
        [[UIApplication sharedApplication] setIdleTimerDisabled: YES];
}

Это тот случай? Но я не хочу, чтобы экран был включен все время.

Он должен продолжать посылать местоположение gps на мой сервер через некоторые интервалы, это может быть 1,5 минуты. Я тестирую на iOS 12.3.1 и на Qt 5.12.3

Спасибо заранее Marek

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...