关于在收件箱中新建短信的问题,请教!

stonesl 2008-08-02 12:34:26
在用以下代码在收件箱中新建短信,可以正常实现,只是有一个问题,就是在收件箱里通过菜单查看信息详情的时候,显示的是
收件人 13500135000,就像是已发短信那样,而其它正常收到的短信显示的是发件人 XXX,怎么才能让它像其它正常收到的短信那样呢?请各位帮忙!谢谢!
CClientMtmRegistry* iClientMtmRegistry=CClientMtmRegistry::NewL(*iSession);
CleanupStack::PushL(iClientMtmRegistry);
CSmsClientMtm* iSmsClientMtm=(CSmsClientMtm *)iClientMtmRegistry->NewMtmL(KUidMsgTypeSMS);
CleanupStack::PushL(iSmsClientMtm);

TMsvEntry indexEntry;

indexEntry.SetInPreparation(ETrue);

indexEntry.iMtm = KUidMsgTypeSMS;

indexEntry.iType = KUidMsvMessageEntry;

indexEntry.iServiceId = iSmsClientMtm->ServiceId();

indexEntry.iDate.HomeTime();


iSmsClientMtm->SwitchCurrentEntryL(KMsvGlobalInBoxIndexEntryId);

iSmsClientMtm->Entry().CreateL(indexEntry);


TMsvId iSmsId = indexEntry.Id();

iSmsClientMtm->SwitchCurrentEntryL(iSmsId);

_LIT(KSMSBody,"MY first sms!");
CRichText& body = iSmsClientMtm->Body();


body.Reset();

body.InsertL(0, KSMSBody);

indexEntry.iDescription.Set(KSMSBody);

_LIT(KAddress,"13500135000");

iSmsClientMtm->AddAddresseeL(KAddress);

indexEntry.iDetails.Set(KAddress);

indexEntry.SetUnread(ETrue);

iSmsClientMtm->Entry().ChangeL(indexEntry);

iSmsClientMtm->SaveMessageL();

CleanupStack::PopAndDestroy(2);
...全文
77 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stonesl 2008-08-03
  • 打赏
  • 举报
回复
谢谢,问题已解决,多谢!
puddings 2008-08-02
  • 打赏
  • 举报
回复
噢,理解错了,我以为你是要把号码变成名字

要添加from字段可以为这个短信加一个header,在header里添加发件人地址:

CSmsHeader::SetFromAddressL()

参考这个帖子:

http://discussion.forum.nokia.com/forum/showthread.php?t=106468
stonesl 2008-08-02
  • 打赏
  • 举报
回复
多谢puddings!
不过按你说的这样不行,还和原来的一样,还是显示的是收件人,而不是发件人。
puddings 2008-08-02
  • 打赏
  • 举报
回复
把名字从电话本取出来,然后

indexEntry.iDetails.Set(name);

或者用AddAddresseeL的一个重载,可以加alias参数的那个试试:


iSmsClientMtm->AddAddresseeL(KAddress,name);

3,120

社区成员

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

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