QNetworkAccessManager之前如何设置接入点和关联网络连接?
环境:winxp, QT Creator 2.0/Nokia Qt SDK 1.0 (针对S60 V5手机开发)
程序中采用QNetworkAccessManager处理请求,代码段如下:
...
manager = new QNetworkAccessManager(this); //新建QNetworkAccessManager对象
manager->setProxy(QNetworkProxy::NoProxy);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(replyFinished(QNetworkReply*)));
ui->lbl_msg->setText(codec->toUnicode("登录中,请稍候..."));
manager->get(QNetworkRequest(QUrl(url+"/LoginHandler.aspx?Action=login&LoginName="+loginname+"&Pwd="+pwd+""))); //发送请求
现象描述:
1)代码在模拟器上运行正常。
2)连接到真机(nokia 5235)上调试时,如果真机上设置了默认连接(在承载方式下设置,默认链接为为互联网(联通3gnet)),程序在执行manager->get...时,会导致真机自动重启。
2)若将真机上的默认连接方式设置为(询问一次),则在真机上调试是正常的,但每次网络连接之前都会出现接入点选择框,我选择互联网接入点,运行是正常的。
如何在程序中实现每次需要网络连接时自动寻找接入点(3gnet/3gwap),无需用户选择。在网上学习了一下关于接入点选择和屏蔽方面的资料。
在QNetworkAccessManager之前设置接入点和Connection.Start,代码如下:
...
User::LeaveIfError(iSocketServ.Connect());
User::LeaveIfError(iConnection.Open(iSocketServ));
TCommDbConnPref connectPref;
connectPref.SetDialogPreference(ECommDbDialogPrefDoNotPrompt);
connectPref.SetBearerSet(ECommDbBearerUnknown);
connectPref.SetDirection( ECommDbConnectionDirectionOutgoing );
connectPref.SetIapId(iSelectedIap);
User::LeaveIfError(iConnection.Start(connectPref));
加了以上代码执行后没什么效果,现象还是一样,不知道什么原因。
请高人赐教一下,感谢!