如何获得已接来电和未接来电号码
文章信息
- 设备, 软件 版本:
S60 3rd Edition
- 详细描述:
下列代码示例演示了如何使用第三方电话API(CTelephony)获取已接来电和未接来电号码。
下列代码是在一个活动对象中完成的,其派生于CActive。
// Class members
CTelephony* iTelephony;
CTelephony::TCallStatusV1 iLineStatus;
CTelephony::TCallStatus iLastInformedLineStatus;
Construction & initialization:
iTelephony = CTelephony::NewL();
// Initialize with 'unknown' statuses
iLineStatus.iStatus = CTelephony::EStatusUnknown;
iLastInformedLineStatus = CTelephony::EStatusUnknown;
CTelephony::TCallStatusV1Pckg lineStatusPckg( iLineStatus );
// Request notification about the changes in voice line status
iTelephony->NotifyChange( iStatus, CTelephony::EVoiceLineStatusChange, lineStatusPckg );
SetActive();
Implementation of CActive::RunL()
// Within CActive::RunL():
if( iLineStatus.iStatus == CTelephony::EStatusDialling )
{
GetNumber();
}
if(iLineStatus.iStatus == CTelephony::EStatusRinging)
{
if(iLastInformedLineStatus != CTelephony::EStatusDialling)
{
GetNumber();
}
}
iLastInformedLineStatus = iLineStatus.iStatus;
Implementation of CActive::DoCancel():
iTelephony->CancelAsync( CTelephony::EVoiceLineStatusChangeCancel );
Implementation of GetNumber():
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;
iTelephony->GetCallInfo( callSelectionV1Pckg, callInfoV1Pckg, remotePartyInfoV1Pckg );
if( remotePartyInfoV1.iRemoteIdStatus == CTelephony::ERemoteIdentityAvailable )
{
if( remotePartyInfoV1.iRemoteNumber.iTelNumber.Length() > 0 )
{
// Incoming call number can be read from
// remotePartyInfoV1.iRemoteNumber.iTelNumber;
}
}
if( callInfoV1.iDialledParty.iTelNumber.Length() > 0 )
{
// Outgoing call number can be read from
// callInfoV1.iDialledParty.iTelNumber;
}


(no comments yet)