Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Получение активной точки доступа

From Wiki
Jump to: navigation, search
Article Metadata

Совместимость
Платформа(ы):
Symbian

Статья
Перевод:
A.A.M.
Последнее редактирование: hamishwillee (08 May 2013)

Перевод с английского, оригинальная статья находится здесь.


Обзор

Возникают ситуации, в которых система предлагает пользователю выбрать точку доступа для дальнейшего подключения к сети. В таком случае система показывает системный диалог со списком точек доступа. Это может происходить, например, при попытке загрузить файл с использованием Download Manager API или открыть URL через Browser Control API. Но если пользователь уже подключен через какую-либо точку доступа, то есть возможность использовать ее без повторного показа диалога для выбора. Рассмотрим как получить активную точку доступа.

Реализация

Класс MConnectionMonitorObserver позволяет получать уведомления об установке/разрыве соединения, изменении доступности интернет точек доступа (IAP, internet access point) и т.п. Чтобы получать уведомления нужно:

  • 1) Унаследовать класс от MConnectionMonitorObserver и реализовать его виртуальную функцию EventL():
class CMyHTTPEngine : public MConnectionMonitorObserver
{
...
public:
// from MConnectionObserver
void EventL(const CConMonEvenBase& aConnEvent);
...
private:
RConnectionMonitor iConnMon;
};
  • 2) Зарегистрироваться для получения уведомлений о событиях до начала установки соединения:
    TInt err = iConnMon.ConnectL();
iConnMon.NotifyEventL( *this );
// …теперь можно перейти к установке HTTP соединения
  • 3) Обрабатывать полученные события с целью определить идентификатор (ID) активной точки доступа (IAP):
 CMyHTTPEngine::EventL(const CConMonEvenBase& aConnEvent)
{
TInt event = aConnEvent.EventType();
TUint connId = aConnEvent.ConnectionId();
TUint iapId;
TRequestStatus status;
switch ( event )
{
case EConnMonCreateConnection: // Создано новое соединение
{
iConnMon.GetUintAttribute(connId, 0, KIAPId, iapId, status);
 
// Имя точки доступа может быть получено при помощи функции
// GetStringAttribute(connId, 0, KIAPName, ...)
User::WaitForRequest( status );
break;
}
case EConnMonCreateSubConnection: // Создано новое суб-подключение к уже активному соединению
{
TUint subConnId;
const CConnMonCreateSubConnection
subConnEvent = (CConnMonCreateSubConnection)aConnEvent;
subConnId = subConnEvent.SubConnectionId();
iConnMon.GetUintAttribute(connId, subConnId, KIAPId, iapId, status);
// Имя точки доступа может быть получено при помощи функции
// GetStringAttribute(connId, subConnId, KIAPName, ...)
User::WaitForRequest( status );
break;
}
default:
break;
}
// Закрываем монитор событий, если он нам больше не нужен
// iConnMon.Close();
}

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

This page was last modified on 8 May 2013, at 00:04.
286 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×