C++ 使用Qt app在iOS上以后台模式获取GPS数据

C++ 使用Qt app在iOS上以后台模式获取GPS数据,c++,ios,xcode,qt,gps,C++,Ios,Xcode,Qt,Gps,大约20分钟后,位置更新停止在后台传送到应用程序。应用程序并没有关闭,因为当我点击应用程序图标时,它会在我离开它的状态下从后台带回来,然后更新再次开始提交。我还可以看到,在任务栏的右上角有一个小箭头,当它显示时,我得到了更新,当它消失时,我没有收到更新。我每5秒钟获取一次GPS数据,将其保存在队列中,每分钟通过tcp套接字连接到服务器并发送这些更新。当右上箭头消失时,我的应用程序将不再连接到服务器(甚至应该是空数据),因此我假设应用程序处于某种挂起模式 我已经用Qt/QML编写了应用程序,然后将

大约20分钟后,位置更新停止在后台传送到应用程序。应用程序并没有关闭,因为当我点击应用程序图标时,它会在我离开它的状态下从后台带回来,然后更新再次开始提交。我还可以看到,在任务栏的右上角有一个小箭头,当它显示时,我得到了更新,当它消失时,我没有收到更新。我每5秒钟获取一次GPS数据,将其保存在队列中,每分钟通过tcp套接字连接到服务器并发送这些更新。当右上箭头消失时,我的应用程序将不再连接到服务器(甚至应该是空数据),因此我假设应用程序处于某种挂起模式

我已经用Qt/QML编写了应用程序,然后将项目转换为XCode。我已经检查了功能中的“后台模式”(位置更新、后台提取)。我在plist文件中有UIBackgroundModes获取,位置。我还有NSLOCATIONWHENUSE NSLocationAlways和NSLocationAlways,以及INSENUSE USAGE DESCRIPTION和App in system checking已完成时的NSLOCATION 设置->myapp->位置->始终

可能问题在于应用程序被挂起或处于睡眠状态。在其他一些项目中,我使用了一些代码,通过一些简单的代码来防止屏幕褪色:

void IosLockHelper::setTimerDisabled() {
        [[UIApplication sharedApplication] setIdleTimerDisabled: YES];
}
是这样吗?但我不想一直打开屏幕

它应该继续发送gps定位到我的服务器在一些间隔,它可以是1,5分钟。 我正在测试iOS 12.3.1和Qt 5.12.3

提前谢谢
Marek

添加SetIdleTimeDisabled并不能解决问题。有人知道吗?添加SetIdleTimeDisabled并不能解决问题。有人知道吗?