怎么监听来电和接听
发布时间:2010-05-30 00:27:06 文章来源:www.iduyao.cn 采编人员:星星草
如何监听来电和接听
如何监听来电和接听?
------解决方案--------------------
CTelephony::TCallStatusV1
CTelephony::TCallStatusV1Pckg
CTelephony
CTelephony::TNotificationEvent
------解决方案--------------------
up, never do that before
------解决方案--------------------
http://www.devdiv.net/viewthread.php?tid=2618&extra=page%3D1这个是短信的,电话也是一样只是要用CTelephony::TCallStatusV1
CTelephony::TCallStatusV1Pckg 这两个做。
------解决方案--------------------
学习了~
------解决方案--------------------
Symbian 3rd中如何要监控来电,接听和挂断?3rd中我们一般需使用 CTelephony::NotifyChange来判定来电的状态:来电,接听和挂断等.
主要代码如下:
CTelWatcher* CTelWatcher::NewL()
{
CTelWatcher* self = new (ELeave) CTelWatcher();
CleanupStack::PushL(self);
self->ConstructL();
CleanupStack::Pop();
return self;
}
CTelWatcher::~CTelWatcher()
{
Cancel();
if (iTelephony)
{
delete iTelephony;
iTelephony = NULL;
}
}
CTelWatcher::CTelWatcher():CActive(EPriorityStandard),iState(EPhoneRing),iCurrentStatusPckg(iCurrentStatus)
{
iCurrentStatus.iStatus = CTelephony::EStatusUnknown;
}
void CTelWatcher::ConstructL()
{
iTelephony = CTelephony::NewL();
CActiveScheduler::Add(this);
}
void CTelWatcher::StartListening()
{
Cancel();
CAknInformationNote* iNote = new (ELeave) CAknInformationNote;
iNote->ExecuteLD(_L("WO WO"));
iTelephony->NotifyChange(iStatus,CTelephony::EVoiceLineStatusChange,iCurrentStatusPckg);
SetActive();
}
void CTelWatcher::RunL()
{
if (iStatus != KErrNone) return;
switch(iCurrentStatus.iStatus)
{
case CTelephony::EStatusRinging: //来电
{
iState = EPhoneRing;
GetPhoneNumber(iPhoneNumber);
}
break;
case CTelephony::EStatusAnswering://接听
{
iState = EPhoneAnswering;
CAknInformationNote* note = new (ELeave) CAknInformationNote;
note->ExecuteLD(_L("EPhoneAnswering"));
}
break;
case CTelephony::EStatusIdle://挂断
{
iState = EPhoneHangup;
CAknInformationNote* note1 = new (ELeave) CAknInformationNote;
note1->ExecuteLD(_L("EPhoneHangup"));
}
break;
}
//开始下一次监控
iTelephony->NotifyChange(iStatus,CTelephony::EVoiceLineStatusChange,iCurrentStatusPckg);
SetActive();
}
void CTelWatcher::DoCancel()
{
iTelephony->CancelAsync( CTelephony::EVoiceLineStatusChangeCancel );
}
//获取来电号码
void CTelWatcher::GetPhoneNumber(TDes& aPhoneNumber)
{
CTelephony::TCallInfoV1 callInfoV1;
CTelephony::TCallInfoV1Pckg callInfoV1Pckg(callInfoV1);
CTelephony::TCallSelectionV1 callSelectionV1;
CTelephony::TCallSelectionV1Pckg callSelectionV1Pckg(callSelectionV1);
CTelephony::TRemotePartyInfoV1 remotePartyInfoV1;
CTelephony::TRemotePartyInfoV1Pckg remotePartyInfoV1Pckg(remotePartyInfoV1);
callSelectionV1.iLine = CTelephony::EVoiceLine;
callSelectionV1.iSelect = CTelephony::EInProgressCall;
User::LeaveIfError(iTelephony->GetCallInfo(callSelectionV1Pckg,callInfoV1Pckg, remotePartyInfoV1Pckg));
aPhoneNumber.Copy(remotePartyInfoV1Pckg().iRemoteNumber.iTelNumber);
}
------解决方案--------------------
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
高手,求个S60v3 FP2 320*240分辨率的SDK
求个S60v3 FP2 320*240分辨率的SDK,
240*320的SDK虽然可以调分辨率的,但我想要一个和E72一...
-
请教关于smybian上使用sqlite的问题
请问如何在symbian 9.1版本上使用sqlite啊?
------解决方案--------------------
直接去sql...
-
symbian 可以内嵌浏览器吗
谁有内嵌浏览器的简单代码吗?或者如何实现内嵌浏览器。谢谢
------解决方案--------------------
ht...
-
symbian:如何判断一个文件是否系统支持的手机铃声格式
现在需要扫描一些固定后缀的文件如MP3,aac等显示出来供用户选择设置为手机铃...
-
数据库求助!!
我创建了一个RDbStoreDatabase,想把通讯录的数据库内容复制过来,该如何实现?实在是不想一条条的insert。。。
------解...
-
Specified file '\Symbian\9.1\S60_3rd_MR\EPOC32\RELEASE\WINSCW\UDEB\.lib' not found 什么意思?
请大家帮我解决一下,...
-
关于Symbian的express signed
我想给一个Symbian程序做一个express signed,在得到了publisheID后,还需要一个Content ID才能完成,可...
-
CPbkContactEngine::NewL()真机崩溃
如题,在模拟器上正常,在真机上崩溃
哪位遇到过?
------解决方案--------------------
我也遇...
-
请问在symbian如何获取最近手机基站的lac和cid?
请问在symbian如何获取最近手机基站的lac和cid?
------解决方案---------------...
-
求救rvct2.2问题:Cannot obtain license for Compiler (feature compiler) with license version >= 2.2
在carbide用rvct2.2编译...