| ID | - | Creation date | 8 May 2009 |
| Platform | S60 3rd Edition | Tested on devices | E61i |
| Category | Symbian C++ | Subcategory |
| Keywords (APIs, classes, methods, functions): CTelephony::GetPhoneId() |
CTelephonyReader implementation illustrates how to get Manufacturer and Model number of the device in S60 3rd Edition with CTelephony API.
The implementation is pretty simple, and when using this one only thing to do in calling class is to implement the callback interface and then to construct an instance of the CTelephonyReader.
#include <Etel3rdParty.h>
LIBRARY etel3rdparty.lib
Capability None
#ifndef __TELEPHONYREADER_h__
#define __TELEPHONYREADER_h__
#include <Etel3rdParty.h>
class MTelephonyObserver
{
public:
virtual void GetPhoneId(const TDesC& aManufacturer,const TDesC& aModel) = 0;
};
class CTelephonyReader : public CActive
{
public:
static CTelephonyReader* NewL(MTelephonyObserver* aObserver);
static CTelephonyReader* NewLC(MTelephonyObserver* aObserver);
void ConstructL(void);
~CTelephonyReader();
protected:
void DoCancel();
void RunL();
private:
CTelephonyReader(MTelephonyObserver* aObserver);
private:
MTelephonyObserver* iObserver;
CTelephony* iTelephony;
CTelephony::TPhoneIdV1 iPhoneIdV1;
CTelephony::TPhoneIdV1Pckg iPhoneIdV1Pckg;
};
#endif //__TELEPHONYREADER_h__
#include "TelephonyReader.h"
CTelephonyReader* CTelephonyReader::NewL(MTelephonyObserver* aObserver)
{
CTelephonyReader* self = NewLC(aObserver);
CleanupStack::Pop(self);
return self;
}
CTelephonyReader* CTelephonyReader::NewLC(MTelephonyObserver* aObserver)
{
CTelephonyReader* self = new (ELeave) CTelephonyReader(aObserver);
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CTelephonyReader::CTelephonyReader(MTelephonyObserver* aObserver)
:CActive(0),iObserver(aObserver),iPhoneIdV1Pckg(iPhoneIdV1)
{
}
CTelephonyReader::~CTelephonyReader()
{
Cancel();
delete iTelephony;
}
void CTelephonyReader::ConstructL(void)
{
CActiveScheduler::Add(this);
iTelephony = CTelephony::NewL();
iTelephony->GetPhoneId(iStatus,iPhoneIdV1Pckg);
SetActive();
}
void CTelephonyReader::DoCancel()
{
iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
}
void CTelephonyReader::RunL()
{
if(iStatus == KErrNone)
{
iObserver->GetPhoneId(iPhoneIdV1.iManufacturer,iPhoneIdV1.iModel);
}
}