Phone Identification Tutorial

This tutorial describes how to retrieve the phone identification parameters from the device.

Context

The phone idenitifcation is returned in a packaged [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony::TPhoneIdV1. It contains the following member variables, each a [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]TBuf descriptor of up to 50 characters:

  • Manufacturer

  • Model

  • Serial Number, the IMEI or ESN serial number. It identifies the phone, not the subscriber using the phone.

Steps

  1. create an instance of [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony with an active object
  2. set the active object with [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]SetActive() function
  3. use [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony::GetPhoneId() to get the phone identification parameters use [[[ERROR: [NOKX000E] Unable to find definition for key reference 'CTelephony']]]CTelephony::EGetPhoneIdCancel to cancel the asynchronous call.

Phone Identification example

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

class CClientApp : public CActive
   { 

private:
   CTelephony* iTelephony;
   CTelephony::TPhoneIdV1 iPhoneIdV1;
   CTelephony::TPhoneIdV1Pckg iPhoneIdV1Pckg;

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

void CClientApp::SomeFunction()
    {
    iTelephony->GetPhoneId(iStatus, iPhoneIdV1Pckg);
    SetActive();
    }

void CClientApp::RunL()
    {
    if(iStatus==KErrNone)
       {
       TBuf<CTelephony::KPhoneManufacturerIdSize> manufacturer = iPhoneIdV1.iManufacturer;
       TBuf<CTelephony::KPhoneModelIdSize> model = iPhoneIdV1.iModel;
       TBuf<CTelephony::KPhoneSerialNumberSize> serialNumber = iPhoneIdV1.iSerialNumber;
       }
    }

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