Управление каналом-носителем QtMobility - PullRequest
2 голосов
/ 29 июня 2010

Я создаю приложение Qt Symbian и мне нужно подключиться к Интернету.В некотором смысле мне нужно позволить пользователю выбрать соединение ОДИН РАЗ, когда приложение запускается, или использовать соединение ПО УМОЛЧАНИЮ, если оно включено.

Прежде чем я просто использовал qt_SetDefaultIap (), чтобы установить соединение при запуске.Он работал отлично, но теперь мне нужно использовать QtMobility.Я пробовал в QMainWindow при запуске моего приложения следующее:

QNetworkConfigurationManager manager;

const bool selectIap = (manager.capabilities()& QNetworkConfigurationManager::CanStartAndStopInterfaces);
QNetworkConfiguration defaultIap = manager.defaultConfiguration();

if(!defaultIap.isValid() && (!selectIap && defaultIap.state() != QNetworkConfiguration::Active))
    {
    // let the user know that there is no access point available
    }

session = new QNetworkSession(defaultIap,this);
session->open();

Но должно быть что-то, чего мне не хватает, потому что приложение всегда просит пользователя выбирать соединение каждый раз, когда оно использует Интернет, а не один раз, как яхочу.И даже если я выберу соединение, приложение запрашивает три раза.РЕДАКТИРОВАТЬ: Он работает на Nokia 5800, но не на N97.

Это, похоже, проблема для многих людей, как это было обсуждено ранее:

http://discussion.forum.nokia.com/forum/showthread.php?196396-how-to-use-QNetworkConfigurationManager-to-handle-access-point

http://discussion.forum.nokia.com/forum/showthread.php?199401-How-to-use-bearer-management-to-select-access-point

http://discussion.forum.nokia.com/forum/showthread.php?199472-How-can-I-set-the-best-one-access-point-as-default

Любые идеи о том, как заставить это работать?

1 Ответ

0 голосов
/ 30 июня 2010

если настройки вашего телефона установлены как «Всегда спрашивать» в (5800) Меню -> Настройки -> Пункты назначения -> Параметры -> Соединение по умолчанию, то QNetworkConfigurationManager.defaultConfiguration () вернет конфигурацию UserChoice, которая всегда будет всплыватьзапрос.

Если вы хотите контролировать, какая точка доступа действительно используется, вы можете перечислить / перечислить конфигурации (QNetworkConfigurationManager :: allConfigurations (), выбрать ту, которая вам нужна, а затем создать QNetworkSession на ее основе и вызватьQNetworkSession :: open (). После этого, если вы создаете экземпляр и используете, например, QNetworkAccessManager для выполнения веб-запросов, они должны использовать эту конфигурацию «автоматически».

...