封装CTelephoney的方法,包括获取IMEI,IMSI,品牌,型号,打电话功能(转)
2010-11-20 17:52
477 查看
标题: 封装CTelephoney的方法,包括获取IMEI,IMSI,品牌,型号,打电话功能 [打印本页]
作者: 鬼人王 时间: 2009-8-5 16:56 标题: 封装CTelephoney的方法,包括获取IMEI,IMSI,品牌,型号,打电话功能
本帖最后由 鬼人王 于 2009-8-6 17:11 编辑
在学Symbian之处,在Nokia论坛上获得陈子腾大侠的获取IMEI的方法,然后怎加些常用功能,帮助新手。。
头文件:#ifndef MYTELEPHONY_H
#define MYTELEPHONY_H
#include <e32base.h>
#include <Etel3rdParty.h>
class CMyTelephony : public CActive
{
public:
static void GetIMSIL(TDes& aIMSI);
static void GetIMEIL(TDes& aIMEI);
static void GetPhoneType(TDes& aPhoneType);
static void DialPhone(const TDesC& aPhoneId);
static CMyTelephony* NewL();
protected:
void DoCancel();
void RunL();
private:
static CMyTelephony* NewLC();
~CMyTelephony();
CMyTelephony();
void ConstructL();
void GetSubscriberId();
void GetPhoneId();
private:
CTelephony* iTelephony;
CTelephony::TCancellationRequest iRequest;
CTelephony::TSubscriberIdV1 iSubscriberId;
CTelephony::TSubscriberIdV1Pckg iSubscriberIdPckg;
CTelephony::TPhoneIdV1 iPhoneId;
CTelephony::TPhoneIdV1Pckg iPhoneIdPckg;
CTelephony::TCallId iCallId;
TBuf<32> iPhoneType;
public :
void DialNewCall(const TDesC& aTelNumber);
};
#endif // MYTELEPHONY_H
复制代码作者: 鬼人王 时间: 2009-8-5 16:57
源文件:// MyTelephony.cpp
//
#include <e32svr.h>
#include "MyTelephony.h"
#include <f32file.h>
class CTelephony;
CMyTelephony* CMyTelephony::NewLC()
{
CMyTelephony* self = new (ELeave) CMyTelephony;
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CMyTelephony* CMyTelephony::NewL()
{
CMyTelephony* self = CMyTelephony::NewLC();
CleanupStack::Pop(self);
return self;
}
void CMyTelephony::GetIMSIL(TDes& aIMSI)
{
#ifdef __WINS__
CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetSubscriberId();
aIMSI = telephony->iSubscriberId.iSubscriberId;
delete telephony;
#else
_LIT(KDebugIMSI, "000000000000000");
aIMSI = KDebugIMSI;
#endif
}
void CMyTelephony::GetIMEIL(TDes& aIMEI)
{
#ifndef __WINS__ //真实设备 This only works on target machine
CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetPhoneId();
aIMEI = telephony->iPhoneId.iSerialNumber;
delete telephony;
#else //模拟器 Return a fake IMEI when working onemulator
_LIT(KEmulatorImei, "000000000000000");
aIMEI=KEmulatorImei;
#endif
}
void CMyTelephony::GetPhoneType(TDes& aPhoneType)
{
#ifndef __WINS__
CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetPhoneId();
aPhoneType.Copy(telephony->iPhoneId.iManufacturer);
aPhoneType.Append(telephony->iPhoneId.iModel);
delete telephony;
#else //模拟器 Return a fake IMEI when working onemulator
_LIT(KPhoneType, "Nokia5500d");
aPhoneType=KPhoneType;
#endif
}
void CMyTelephony::DialPhone(const TDesC& aPhoneId)
{
#ifndef __WINS__ //真实设备 This only works on target machine
CMyTelephony* telephony = CMyTelephony::NewLC();
telephony->DialNewCall(aPhoneId);
#else //模拟器 Return a fake IMEI when working onemulator
#endif
}
void CMyTelephony::DoCancel()
{
iTelephony->CancelAsync(iRequest);
iTelephony->CancelAsync(CTelephony::EDialNewCallCancel);
}
void CMyTelephony::RunL()
{
CActiveScheduler::Stop();
}
CMyTelephony::~CMyTelephony()
{
delete iTelephony;
}
CMyTelephony::CMyTelephony() :
CActive(CActive::EPriorityStandard), iSubscriberIdPckg(iSubscriberId),
iPhoneIdPckg(iPhoneId)
{
CActiveScheduler::Add(this);
}
void CMyTelephony::ConstructL()
{
iTelephony = CTelephony::NewL();
}
void CMyTelephony::GetSubscriberId()
{
Cancel();
iRequest = CTelephony::EGetSubscriberIdCancel;
iTelephony->GetSubscriberId(iStatus, iSubscriberIdPckg);
SetActive();
CActiveScheduler::Start();
}
void CMyTelephony::GetPhoneId()
{
Cancel();
iRequest = CTelephony::EGetPhoneIdCancel;
iTelephony->GetPhoneId(iStatus, iPhoneIdPckg);
SetActive();
CActiveScheduler::Start();
}
/*void CMyTelephony::GetType()
{
_LIT(KPath,"z:\\resource\\versions\\model.txt");
Cancel();
RFs fs;
RFile typeFile;
User::LeaveIfError(fs.Connect());
TFileText myFile;
User::LeaveIfError(typeFile.Open(fs, KPath, EFileShareReadersOnly));
// Read from position 0: start of file
myFile.Set(typeFile);
myFile.Read(iPhoneType); // readBuf1 is now "write "
fs.Close();
SetActive();
CActiveScheduler::Start();
}*/
/*
* 拨打电话
* */
void CMyTelephony::DialNewCall(const TDesC& aTelNumber)
{
CTelephony::TTelNumber telNumber(aTelNumber);
CTelephony::TCallParamsV1 callParams;
callParams.iIdRestrict = CTelephony::ESendMyId;
CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);
iTelephony->DialNewCall(iStatus, callParamsPckg, telNumber, iCallId);
SetActive();
}
作者: 鬼人王 时间: 2009-8-5 16:56 标题: 封装CTelephoney的方法,包括获取IMEI,IMSI,品牌,型号,打电话功能
本帖最后由 鬼人王 于 2009-8-6 17:11 编辑
在学Symbian之处,在Nokia论坛上获得陈子腾大侠的获取IMEI的方法,然后怎加些常用功能,帮助新手。。
头文件:#ifndef MYTELEPHONY_H
#define MYTELEPHONY_H
#include <e32base.h>
#include <Etel3rdParty.h>
class CMyTelephony : public CActive
{
public:
static void GetIMSIL(TDes& aIMSI);
static void GetIMEIL(TDes& aIMEI);
static void GetPhoneType(TDes& aPhoneType);
static void DialPhone(const TDesC& aPhoneId);
static CMyTelephony* NewL();
protected:
void DoCancel();
void RunL();
private:
static CMyTelephony* NewLC();
~CMyTelephony();
CMyTelephony();
void ConstructL();
void GetSubscriberId();
void GetPhoneId();
private:
CTelephony* iTelephony;
CTelephony::TCancellationRequest iRequest;
CTelephony::TSubscriberIdV1 iSubscriberId;
CTelephony::TSubscriberIdV1Pckg iSubscriberIdPckg;
CTelephony::TPhoneIdV1 iPhoneId;
CTelephony::TPhoneIdV1Pckg iPhoneIdPckg;
CTelephony::TCallId iCallId;
TBuf<32> iPhoneType;
public :
void DialNewCall(const TDesC& aTelNumber);
};
#endif // MYTELEPHONY_H
复制代码作者: 鬼人王 时间: 2009-8-5 16:57
源文件:// MyTelephony.cpp
//
#include <e32svr.h>
#include "MyTelephony.h"
#include <f32file.h>
class CTelephony;
CMyTelephony* CMyTelephony::NewLC()
{
CMyTelephony* self = new (ELeave) CMyTelephony;
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CMyTelephony* CMyTelephony::NewL()
{
CMyTelephony* self = CMyTelephony::NewLC();
CleanupStack::Pop(self);
return self;
}
void CMyTelephony::GetIMSIL(TDes& aIMSI)
{
#ifdef __WINS__
CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetSubscriberId();
aIMSI = telephony->iSubscriberId.iSubscriberId;
delete telephony;
#else
_LIT(KDebugIMSI, "000000000000000");
aIMSI = KDebugIMSI;
#endif
}
void CMyTelephony::GetIMEIL(TDes& aIMEI)
{
#ifndef __WINS__ //真实设备 This only works on target machine
CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetPhoneId();
aIMEI = telephony->iPhoneId.iSerialNumber;
delete telephony;
#else //模拟器 Return a fake IMEI when working onemulator
_LIT(KEmulatorImei, "000000000000000");
aIMEI=KEmulatorImei;
#endif
}
void CMyTelephony::GetPhoneType(TDes& aPhoneType)
{
#ifndef __WINS__
CMyTelephony* telephony = CMyTelephony::NewL();
telephony->GetPhoneId();
aPhoneType.Copy(telephony->iPhoneId.iManufacturer);
aPhoneType.Append(telephony->iPhoneId.iModel);
delete telephony;
#else //模拟器 Return a fake IMEI when working onemulator
_LIT(KPhoneType, "Nokia5500d");
aPhoneType=KPhoneType;
#endif
}
void CMyTelephony::DialPhone(const TDesC& aPhoneId)
{
#ifndef __WINS__ //真实设备 This only works on target machine
CMyTelephony* telephony = CMyTelephony::NewLC();
telephony->DialNewCall(aPhoneId);
#else //模拟器 Return a fake IMEI when working onemulator
#endif
}
void CMyTelephony::DoCancel()
{
iTelephony->CancelAsync(iRequest);
iTelephony->CancelAsync(CTelephony::EDialNewCallCancel);
}
void CMyTelephony::RunL()
{
CActiveScheduler::Stop();
}
CMyTelephony::~CMyTelephony()
{
delete iTelephony;
}
CMyTelephony::CMyTelephony() :
CActive(CActive::EPriorityStandard), iSubscriberIdPckg(iSubscriberId),
iPhoneIdPckg(iPhoneId)
{
CActiveScheduler::Add(this);
}
void CMyTelephony::ConstructL()
{
iTelephony = CTelephony::NewL();
}
void CMyTelephony::GetSubscriberId()
{
Cancel();
iRequest = CTelephony::EGetSubscriberIdCancel;
iTelephony->GetSubscriberId(iStatus, iSubscriberIdPckg);
SetActive();
CActiveScheduler::Start();
}
void CMyTelephony::GetPhoneId()
{
Cancel();
iRequest = CTelephony::EGetPhoneIdCancel;
iTelephony->GetPhoneId(iStatus, iPhoneIdPckg);
SetActive();
CActiveScheduler::Start();
}
/*void CMyTelephony::GetType()
{
_LIT(KPath,"z:\\resource\\versions\\model.txt");
Cancel();
RFs fs;
RFile typeFile;
User::LeaveIfError(fs.Connect());
TFileText myFile;
User::LeaveIfError(typeFile.Open(fs, KPath, EFileShareReadersOnly));
// Read from position 0: start of file
myFile.Set(typeFile);
myFile.Read(iPhoneType); // readBuf1 is now "write "
fs.Close();
SetActive();
CActiveScheduler::Start();
}*/
/*
* 拨打电话
* */
void CMyTelephony::DialNewCall(const TDesC& aTelNumber)
{
CTelephony::TTelNumber telNumber(aTelNumber);
CTelephony::TCallParamsV1 callParams;
callParams.iIdRestrict = CTelephony::ESendMyId;
CTelephony::TCallParamsV1Pckg callParamsPckg(callParams);
iTelephony->DialNewCall(iStatus, callParamsPckg, telNumber, iCallId);
SetActive();
}
相关文章推荐
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
- Windows Phone平台下获取IMEI、IMSI、制造商、型号、机器ID、网卡MAC地址、机主等信息
- android平台获取手机IMSI,IMEI ,序列号和 手机号的方法
- 编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type), 方法包括显示手机信息,并编写测试类进行对象的创建
- 关于J2ME获取手机IMSI和IMEI的方法
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
- 编写一个手机类,包括手机品牌、手机型号, 方法包括显示手机信息,并编写测试类进行对象的创建
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
- 通过android代码获取android系统的imei、手机型号、手机品牌、android系统的版本号、sdk版本号等信息
- 编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type), 方法包括显示手机信息,并编写测试类进行对象的创建
- 通过android代码获取android系统的imei、手机型号、手机品牌、android系统的版本号、sdk版本号等信息
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
- 编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type), 方法包括显示手机信息,并编写测试类进行对象的创建
- 题目:编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type),方法包括显示手机信息,并编写测试类进行对象的创建 public class Mobile { String br
- 编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type), * 方法包括显示手机信息,并编写测试类进行对象的创建
- android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
- 1 开发一个注重性能的JDBC应用程序不是一件容易的事. 当你的代码运行很慢的时候JDBC驱动程序并不会抛出异常告诉你。 本系列的性能提示将为改善JDBC应用程序的性能介绍一些基本的指导原则,这其中的原则已经被许多现有的JDBC应用程序编译运行并验证过。 这些指导原则包括: 正确的使用数据库MetaData方法 只获取需要的数据 选用最佳性能的功能 管理连
- 编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type), 方法包括显示手机信息,并编写测试类进行对象的创建
- 编写一个手机类(Mobile),包括手机品牌(brand)、手机型号(type),方法包括显示手机信息,并编写测试类进行对象的创建