Current Network Information Tutorial

This tutorial describes how to get the current network information with the telephony API for applications.

Steps

  1. create a new instance of CTelephony
  2. use CTelephony::GetCurrentNetworkInfo() to get the current network information
  3. use CTelephony::EGetCurrentNetworkInfoCancel to cancel the asynchronous request
  4. use CTelephony::ECurrentNetworkInfoChange to get the notification of any changes to the current network information
  5. pass the enumeration CTelephony::ECurrentNetworkInfoChangeCancel to cancel the notification request.

Current network information example

#include <e32base.h>
#include <Etel3rdParty.h>

class CClientApp : public CActive
    { 

private:
    CTelephony* iTelephony;
    CTelephony::TNetworkInfoV1 iNetworkInfoV1;
    CTelephony::TNetworkInfoV1Pckg iNetworkInfoV1Pckg;

public:
    CClientApp(CTelephony* aTelephony);
    void SomeFunction();

private:
    /*
       These are the pure virtual methods from CActive that  
       MUST be implemented by all active objects
       */
    void RunL();
    void DoCancel();
    };

CClientApp::CClientApp(CTelephony* aTelephony)
    : CActive(EPriorityStandard),
      iTelephony(aTelephony),
      iNetworkInfoV1Pckg(iNetworkInfoV1)
    {
    //default constructor
    }

void CClientApp::SomeFunction()
    {
    iTelephony->GetCurrentNetworkInfo(iStatus, iNetworkInfoV1Pckg);
    SetActive();
    }

void CClientApp::RunL()
    {
    if(iStatus==KErrNone)
       {
       CTelephony::TNetworkMode mode = iNetworkInfoV1.iMode;
       if((mode == CTelephony::ENetworkModeCdma2000) || (mode == CTelephony::ENetworkModeCdma95))
          {} // CDMA network; process CDMA-specific information
       }
    }

void CClientApp::DoCancel()
    {
    iTelephony->CancelAsync(CTelephony::EGetCurrentNetworkInfoCancel);
    }