如何获取IMEI号

查看IMEI(用来唯一标示每个手机的串号) "*#06#"。但在模拟器上运行该程序时得到的 IMEI 是"0000000000000".

 

2版
plpvariant.lib

#include <plpvariant.h>   

 

    TPlpVariantMachineId machineId;
    PlpVariant::GetMachineIdL(machineId);

 

3版
所需要的库:

LIBRARY  etel3rdParty.lib

能力要求:

CAPABILITY None

注意: 有些混淆的信息说明读取IMEI需要"ReadDeviceData"能力.其实这个能力不是用来读取IMEI号的, 而是用来读取 IMSI时用到的. 


1.1    IMEI_Getter.cpp

#include "IMEI_Getter.h"
 
CImeiReader* CImeiReader::NewL(MImeiObserver* aObserver)
{
    CImeiReader* self = NewLC(aObserver);
    CleanupStack::Pop(self);
    return self;
}
 
CImeiReader* CImeiReader::NewLC(MImeiObserver* aObserver)
{
    CImeiReader* self = new (ELeave) CImeiReader(aObserver);
    CleanupStack::PushL(self);
    self->ConstructL();
    return self;

 
CImeiReader::CImeiReader(MImeiObserver* aObserver)
:CActive(EPriorityStandard), iObserver(aObserver), iIdV1Pkg(iIdV1)
{
}
 
CImeiReader::~CImeiReader()
{
    Cancel();
    delete iTelephony;  
}
 
void CImeiReader::ConstructL(void)
{    
    CActiveScheduler::Add(this);
 
    iTelephony = CTelephony::NewL();
    iTelephony->GetPhoneId(iStatus,iIdV1Pkg);
    SetActive();  
}
 
void CImeiReader::DoCancel()
{
    iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
}
 
void CImeiReader::RunL()
{
    iObserver->GotIMEIL(iIdV1.iSerialNumber,iStatus.Int());
}

1.2 IMEI_Getter.h
#include <Etel3rdParty.h>
 
 
class MImeiObserver
{
    public: 
        virtual void GotIMEIL(const TDesC& aIMEI,TInt aError) = 0;
};
 
class CImeiReader : public CActive
{
    public:
        static CImeiReader* NewL(MImeiObserver* aObserver);
        static CImeiReader* NewLC(MImeiObserver* aObserver);
        ~CImeiReader();
 
    protected:    
        void DoCancel();
        void RunL();
 
    private:
        CImeiReader(MImeiObserver* aObserver);
        void ConstructL(void);
 
    private:
        MImeiObserver*    iObserver;
        CTelephony* iTelephony;
        CTelephony::TPhoneIdV1  iIdV1;   
        CTelephony::TPhoneIdV1Pckg iIdV1Pkg;
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值