获取手机的信号量。运行程序后,当信号量有变化的时候会自动的弹出提示框,
Location: EIKENV.H
Link against: eikcore.lib
//--------------------------------------头文件------------------------------------
#ifndef __S5TESaaaTNO3APPUI_h__
#define __S5TESaaaTNO3APPUI_h__
#include <Etel3rdParty.h>
class CNwSignalCheck : public CActive
{
public:
~CNwSignalCheck();
static CNwSignalCheck* NewLC();
static CNwSignalCheck* NewL();
private:
CNwSignalCheck();
void ConstructL(void);
private:
void GetSignalInfo();
void RunL();
void DoCancel();
private:
CTelephony* iTelephony;
CTelephony::TSignalStrengthV1 iSigStrengthV1;
CTelephony::TSignalStrengthV1Pckg iSigStrengthV1Pckg;
TBool iGettingSignal;
public:
};
#endif // __S5TESTNO3APPUI_h__
//--------------------------------------定义文件------------------------------------
#include "SignalStrenght.h"
CNwSignalCheck* CNwSignalCheck::NewLC()
{
CNwSignalCheck* self = new (ELeave) CNwSignalCheck();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CNwSignalCheck* CNwSignalCheck::NewL()
{
CNwSignalCheck* self = CNwSignalCheck::NewLC();
CleanupStack::Pop(); // self;
return self;
}
void CNwSignalCheck::ConstructL(void)
{
iTelephony = CTelephony::NewL();
GetSignalInfo();
}
CNwSignalCheck::~CNwSignalCheck()
{
Cancel();
delete iTelephony;
}
CNwSignalCheck::CNwSignalCheck() :
CActive(EPriorityStandard), iSigStrengthV1Pckg(iSigStrengthV1)
{
CActiveScheduler::Add(this);
}
void CNwSignalCheck::GetSignalInfo()
{
if (iTelephony && !IsActive())
{
iGettingSignal = ETrue;
iTelephony->GetSignalStrength(iStatus, iSigStrengthV1Pckg);
SetActive();
}
}
void CNwSignalCheck::RunL()
{
//iObserver->SignalStatus(iSigStrengthV1.iSignalStrength, iSigStrengthV1.iBar);
TInt nid = iSigStrengthV1.iSignalStrength;
TBuf<32> bf;
bf.AppendNum(nid);
iEikonEnv->InfoWinL(bf, KNullDesC);
if (iStatus != KErrCancel)
{
iTelephony->NotifyChange(iStatus, CTelephony::ESignalStrengthChange,
iSigStrengthV1Pckg);
SetActive();
}
iGettingSignal = EFalse;
}
void CNwSignalCheck::DoCancel()
{
if (iGettingSignal)
iTelephony->CancelAsync(CTelephony::EGetSignalStrengthCancel);
else
iTelephony->CancelAsync(CTelephony::ESignalStrengthChangeCancel);
}
获取手机信号量
最新推荐文章于 2022-09-17 16:42:57 发布