UIQ3里取来电的号码的问题

leon7909 2007-10-22 02:33:46
我用iTelephony->NotifyChange( iStatus,CTelephony::EVoiceLineStatusChange,iLineStatusPckg );取得了来电时的通知,判断iLineStatus.iStatus==CTelephony::EStatusRinging后,想取得来电的号码,可是却怎么取都是一个空串,到底是为什么啊,有能力的问题吗?以下是我的代码:
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;

switch(iLineStatus.iStatus)
{
case CTelephony::EStatusRinging:
if(KErrNotFound!=iTelephony->GetCallInfo( callSelectionV1Pckg, callInfoV1Pckg, remotePartyInfoV1Pckg ))
{
TBuf<32> buf;
buf.Copy(remotePartyInfoV1.iRemoteNumber.iTelNumber );
CEikonEnv::Static()->InfoMsg(buf);
}
else
{
_LIT(msg,"GetPhoneInfo return Error");
CEikonEnv::Static()->InfoMsg(msg);
}

break;

试来试去,最后显示的都是一个空串,真是晕了,网上找到的代码好象都是这么用的啊。
...全文
155 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
leon7909 2007-10-22
  • 打赏
  • 举报
回复
肉顶。
leon7909 2007-10-22
  • 打赏
  • 举报
回复
dyw,你说的没错,可是我GetCallInfo后,检查if(remotePartyInfoV1.iRemoteIdStatus == CTelephony::ERemoteIdentityAvailable),发现次次都是不等于Available的,搞不懂。
dyw 2007-10-22
  • 打赏
  • 举报
回复
remote party's phone number
A CTelephony::TTelAddress. This field is only valid if the remote identity status field is set to available.
anel 2007-10-22
  • 打赏
  • 举报
回复
你用log代替CEikonEnv::Static()->InfoMsg看看
leon7909 2007-10-22
  • 打赏
  • 举报
回复
看样子还是不行。空串依旧
leon7909 2007-10-22
  • 打赏
  • 举报
回复
你的意思是把变数放到块里面来?这有区别吗?试试看先!
anel 2007-10-22
  • 打赏
  • 举报
回复
这样试试看
switch(iLineStatus.iStatus)
{
case CTelephony::EStatusRinging:
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;

if(KErrNotFound!=iTelephony- >GetCallInfo( callSelectionV1Pckg, callInfoV1Pckg, remotePartyInfoV1Pckg ))
{
TBuf <32 > buf;
buf.Copy(remotePartyInfoV1.iRemoteNumber.iTelNumber );
CEikonEnv::Static()- >InfoMsg(buf);
}
else
{
_LIT(msg,"GetPhoneInfo return Error");
CEikonEnv::Static()- >InfoMsg(msg);
}

break;
leon7909 2007-10-22
  • 打赏
  • 举报
回复
有的,我发的这代码是在RunL中的一段代码,电话状态变化的监视是没有问题的。
anel 2007-10-22
  • 打赏
  • 举报
回复

iTelephony->NotifyChange(iStatus,CTelephony::EVoiceLineStatusChange,iCurrentStatusPckg);
吗?

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧