Hello,

I am using the following code to discover wlans. The problem is that it discovers one Wlan and then stops. can anyone tell me how to discover all wlans?



void CWlanTest:: ListNetworksAndSignalL(CDesCArraySeg& aNetworks)

{

_LIT(KNetInfo, "Network: %S\tSignal: %d");

TBuf<32> netName;

TBuf<100> line;

RConnectionMonitor monitor;

TPckgBuf<TConnMonNetworkNames> pkgNetworks;

// establish connection with the monitor server

monitor.ConnectL();

// prepare leave clean-up

CleanupClosePushL(monitor);

TRequestStatus status;

// get the list of available networks

monitor.GetPckgAttribute(EBearerIdWLAN, 0, KNetworkNames, pkgNetworks, status);

// suspend thread until the info is retrieved

// production code should use active objects

User::WaitForRequest( status ) ;

// leave if the asynchronous method returned an error

User::LeaveIfError(status.Int());

// reset networks list

aNetworks.Reset();

// add retrieved networks to the list

for(TUint i=0; i<pkgNetworks().iCount; i++)

{

netName.Copy(pkgNetworks().iNetwork[i].iName);

line.Format(KNetInfo, &netName, pkgNetworks().iNetwork[i].iSignalStrength);

aNetworks.AppendL(line);

}

// close server session

CleanupStack::PopAndDestroy(&monitor);

}