Управление носителем QtMobility

Я создаю приложение 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();

Но должно быть что-то, чего мне не хватает, поскольку приложение всегда просит пользователя выбрать соединение каждый раз, когда оно использует Интернет, а не только один раз, как я хочу. И даже если я выбираю соединение приложение три раза спрашивает. EDIT: это работает на 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-Как-я-могу-установить-лучшую-одну-точку-доступа-по-умолчанию

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


person Mrbiggerm    schedule 29.06.2010    source источник
comment
Это какая версия Qt?   -  person guruz    schedule 29.06.2010


Ответы (1)


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

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

person juhvu    schedule 30.06.2010