Revision as of 22:57, 30 August 2012 by pavarang (Talk | contribs)

Creating, deleting, editing, and listing WLAN access points using Symbian C++

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Platform(s): S60 3rd Edition
S60 3rd Edition (initial release)
Created: User:Technical writer 2 (21 Sep 2006)
Last edited: pavarang (30 Aug 2012)


Creating, deleting, editing, and listing WLAN access points


Sometimes S60 3rd-party applications may want to provide the functionality for managing access points through their UI. It is possible for applications to programmatically create, edit, and delete access points.
To create, delete, edit, and list WLAN APs, the following headers/libraries are used:
#include <commdb.h>          // link against commdb.lib
#include <apselect.h>        // link against apengine.lib
#include <aplistitem.h>
#include <apdatahandler.h>
#include <apaccesspointitem.h>
#include <aputils.h>
A short example for each type of operation:

Creating an access point:
CApAccessPointItem *wlan = CApAccessPointItem::NewLC();
wlan->WriteTextL(EApWlanNetworkName, _L("WlanAP"));
// Store it into the CommsDb
CCommsDatabase *commDb = CCommsDatabase::NewL();
CApDataHandler *handler = CApDataHandler::NewLC(*commDb);
TUint32 newApId = handler->CreateFromDataL(*wlan);
CleanupStack::PopAndDestroy(3); // handler, commDb, wlan

Removing an access point:
handler->RemoveAPL(myUid); // myUid: ID of an AP to remove

Editing an access point:
handler->AccessPointDataL(myUid, *wlan);
// myUid: ID of an AP to edit
TInt err;
err = wlan->WriteTextL(EApWlanNetworkName, _L("NewName"));
// EApWlanNetworkName is the column to edit.
// Other columns are listed in ApAccessPointItem.h
TBool nameChanged;
handler->UpdateAccessPointDataL(*iaccessPoint, nameChanged);

Getting the UID of the access points:
The UIDs of access points can be retrieved as follows:
CCommsDatabase* commDb =
CApSelect* select = CApSelect::NewLC(
    EApBearerTypeWLAN, // use EApBearerTypeAll for all types
TBuf<256> accessPoints;
_LIT(KAPInfoTxtFormat, "[%d]%S ");
TBool ok = select->MoveToFirst();
for(TInt i = 0; ok && (i < select->Count()); i++)
    ok = select->MoveNext();       
CleanupStack::PopAndDestroy(2); // select, commDb
// accessPoints descriptor now contains WLAN AP IDs + names

86 page views in the last 30 days.