SYMBIAN 取手機IMEI號

來源:互聯網
上載者:User

/*
============================================================================
 Name        : ImeiEngine.h
 Author      :
 Version     :
 Copyright   : Your copyright notice
 Description : CImeiEngine declaration
============================================================================
*/

#ifndef IMEIENGINE_H
#define IMEIENGINE_H

#include <e32base.h> 
#include <e32std.h>
#include <etel3rdparty.h>

class MImeiEngineObserver
 {
 public:
  virtual void UpdatePhoneInfo( const TDesC& aText ) = 0;
 } ;

class CImeiEngine : public CActive
 {
 public:
  CImeiEngine();
  void ConstructL();
  ~CImeiEngine();

 public: // New functions
  void GetImei();
  void SetImeiEngineObserver( MImeiEngineObserver* aObserver );

 private: // From CActive
  void RunL(); 
  void DoCancel();

 private:
  void StartWait( );
 
 private:
  CTelephony::TPhoneIdV1 iPhoneId;
  CTelephony* iTelephony;
  MImeiEngineObserver* iObserver;
  CActiveSchedulerWait iWait;
 };

#endif 

 

/*
============================================================================
 Name        : ImeiEngine.cpp
 Author      :
 Version     :
 Copyright   : Your copyright notice
 Description : CImeiEngine implementation
============================================================================
*/
#include "ImeiEngine.h"

CImeiEngine::CImeiEngine() : CActive(EPriorityStandard)
 {
 }

void CImeiEngine::ConstructL()
 {
 CActiveScheduler::Add(this);

 iTelephony = CTelephony::NewL();
 }

CImeiEngine::~CImeiEngine()
 {
 if ( IsActive() )
  Cancel();

 delete iTelephony;
 }

void CImeiEngine::SetImeiEngineObserver( MImeiEngineObserver* aObserver )
 {
 iObserver = aObserver;
 }

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

void CImeiEngine::GetImei()
 {
 if ( IsActive() )
  {
  Cancel();
  }

 CTelephony::TPhoneIdV1Pckg phoneIdPckg( iPhoneId );
    iTelephony->GetPhoneId( iStatus, phoneIdPckg );

 SetActive();
    StartWait();
 }

void CImeiEngine::RunL()
 {
 iWait.AsyncStop();

 if ( iStatus == KErrNone )
  {
  // The request is successful
  TBuf<CTelephony::KPhoneManufacturerIdSize> manufacturer = iPhoneId.iManufacturer;
  TBuf<CTelephony::KPhoneModelIdSize> model = iPhoneId.iModel;
  TBuf<CTelephony::KPhoneSerialNumberSize> serialNumber = iPhoneId.iSerialNumber;

  if ( iObserver )
   {
   CTelephony::TPhoneIdV1Pckg phoneIdPckg( iPhoneId );
   iObserver->UpdatePhoneInfo( serialNumber );
   }
  }
 }

void CImeiEngine::StartWait( )
    {
    if ( iWait.IsStarted() != (TInt)ETrue )
        {
        iWait.Start();
        }
    }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.