Signal Strength Information Tutorial

This tutorial describes how to get the signal strength information with the telephony API for applications.


  1. create a new instance of CTelephony

  2. use CTelephony::GetSignalStrength() to get the signal strength information

  3. you can cancel the asynchronous request with a EGetSignalStrengthCancel

  4. pass the enumeration CTelephony::ESignalStrengthChange to get the notification of any changes to the signal strength information

  5. pass the enumeration CTelephony::ESignalStrengthChangeCancel to cancel the notification request.

Signal strength example

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

class CClientApp : public CActive
    { 

private:
    CTelephony* iTelephony;
    CTelephony::TSignalStrengthV1 iSigStrengthV1;
    CTelephony::TSignalStrengthV1Pckg iSigStrengthV1Pckg;

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),
      iSigStrengthV1Pckg(iSigStrengthV1)
    {
    //default constructor
    }

void CClientApp::SomeFunction()
    {
    iTelephony->GetSignalStrength(iStatus, iSigStrengthV1Pckg);
    SetActive();
    }

void CClientApp::RunL()
    {
    if(iStatus==KErrNone)
       {
       TInt32 sigStrength = iSigStrengthV1.iSignalStrength;
       TInt8 bar = iSigStrengthV1.iBar;
       }
    }

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