Symbian 中获取机型IMEI号
来源:互联网 发布:人工智能取代人类工作 编辑:程序博客网 时间:2024/06/08 02:54
#ifndef GXY_IMEI_H
#define GXY_IMEI_H
#ifdef EKA2
#include <etel3rdparty.h>
typedef TBuf<CTelephony::KPhoneSerialNumberSize> TMBookMachineId;
#else
#include <Plpvariant.h>
typedef TPlpVariantMachineId TMBookMachineId;
#endif
#include <e32base.h>
class MBookIMEI
#ifdef EKA2
: public CActive
#endif
{
public:
static void GetIMEI(TMBookMachineId& aMachineId);
#ifdef EKA2
private:
MBookIMEI();
// Construction
void ConstructL();
// Destruction
~MBookIMEI();
static MBookIMEI* NewL();
// Issue request: retrieve IMEI
void RequestIMEI(TRequestStatus &aStatus);
// Cancel request
void DoCancel();
// Service completed request
void RunL();
private:
CTelephony* iTelephony; // telephony object we own
CTelephony::TPhoneIdV1 iV1;
CTelephony::TPhoneIdV1Pckg* iPkg;
TRequestStatus *iIMEIStatus;
TMBookMachineId retrievedIMEI;
#endif
};
#endif
///==================================================================///
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//====================================================////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "MBookIMEI.h"
void MBookIMEI::GetIMEI(TMBookMachineId& aMachineId)
{
#ifdef SERIES60_3RD
MBookIMEI* imei = MBookIMEI::NewL();
CleanupStack::PushL(imei);
TRequestStatus status;
imei->RequestIMEI(status);
// wait for request to complete
User::WaitForRequest(status);
// Check if IMEI retrieved correctly
if (status==KErrNone)
{
aMachineId = imei->retrievedIMEI;
}else
{
}
CleanupStack::PopAndDestroy();
#else
PlpVariant::GetMachineIdL(aMachineId);
#endif
}
#ifdef SERIES60_3RD
MBookIMEI::MBookIMEI() : CActive(EPriorityStandard) {}
MBookIMEI* MBookIMEI::NewL()
{
MBookIMEI* self =new(ELeave) MBookIMEI();
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop(self);
return self;
}
void MBookIMEI::ConstructL()
{
iPkg = new (ELeave) CTelephony::TPhoneIdV1Pckg(iV1);
iTelephony = CTelephony::NewL();
CActiveScheduler::Add(this);
}
MBookIMEI::~MBookIMEI()
{
Cancel(); // if any request outstanding, calls DoCancel() to cleanup
delete iTelephony;
delete iPkg;
}
void MBookIMEI::RequestIMEI(TRequestStatus& aStatus)
{
aStatus=KRequestPending;
iIMEIStatus = &aStatus;
iTelephony->GetPhoneId( iStatus, *iPkg );
SetActive();
CActiveScheduler::Start();
}
void MBookIMEI::RunL()
{
if ( (iStatus == KErrNone) )
{
retrievedIMEI.Append(iV1.iSerialNumber); // Read IMEI from package buffer
}
CActiveScheduler::Stop();
//Signal complete and pass back result of CActive object
User::RequestComplete(iIMEIStatus,iStatus.Int());
}
void MBookIMEI::DoCancel()
{
Cancel();
}
#endif
- Symbian 中获取机型IMEI号
- symbian 中如何获取IMEI号
- SYMBIAN 取手机IMEI号
- android 中如何获取IMEI号
- 手机中IMEI号的获取
- 获取IMEI号
- 如何获取IMEI号
- Android获取IMEI号
- 获取手机IMEI号
- Android中获取IMEI码
- Android中获取IMEI码
- Android中获取IMEI码
- Android中获取IMEI码
- Android中获取IMEI码
- Android中获取IMEI码
- Android中获取IMEI码
- Android中获取IMEI码
- Android中获取IMEI码
- Spring定时器
- spring定时器2
- 切记!布尔变量必须初始化
- [黑莓开发之路][01][黑莓开发平台介绍][06][Application Storefront和Application Center]
- 单击按钮执行两遍按钮事件
- Symbian 中获取机型IMEI号
- 上传前检测文件大小
- delphi调用cmd的两种方法
- DB2批处理注意事项
- BIOS开机
- c# 重载WndProc,实现重写“最小化”的方法
- 如何删除wince的驱动(作者:wogoyixikexie@gliet)
- CAS
- 在入口函数Hook的分析