Battery Information Tutorial

This tutorial describes the steps to retrieve the battery information from the device.


  1. create a new instance of CTelephony with active objects

  2. use CTelephony::GetBatteryInfo() to get the battery information

  3. the function returns the information in CTelephony::TBatteryInfoV1 The result contains the battery charge level and the battery status.

  4. use CTelephony::EGetBatteryInfoCancel to cancel the asynchronous function

  5. use CTelephony::EBatteryInfoChange to get the notification of any changes to the battery information

  6. pass the enumeration CTelephony::EBatteryInfoChangeCancel to cancel the notification request.

Battery information example

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

class CClientApp : public CActive
  { 

private:
    CTelephony* iTelephony;
    CTelephony::TBatteryInfoV1 iBatteryInfoV1;
    CTelephony::TBatteryInfoV1Pckg iBatteryInfoV1Pckg;

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

void CClientApp::SomeFunction()
    {
    iTelephony->GetBatteryInfo(iStatus, iBatteryInfoV1Pckg);
    SetActive();
    }

void CClientApp::RunL()
    {
    if(iStatus==KErrNone)
       {
       CTelephony::TBatteryStatus batteryStatus = iBatteryInfoV1.iStatus;
       TUint chargeLevel = iBatteryInfoV1.iChargeLevel;
       }
    }

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