symbian mtm操作
2010-08-20 01:50:00 来源:WEB开发网//CSmsHeader& header = iSmsMtm->SmsHeader();
//header.SetFromAddressL(aAddr);//这里我采用了两种方法,均不能正确设置发件人号码
//iSmsMtm->AddAddresseeL(aAddr);//后来才知道这里为收件人号码,所以必须在以后修改
CRichText& body = iSmsMtm->Body();
body.Reset();
body.InsertL(0, *iSmsContext);
//提交保存
iSmsMtm->SaveMessageL();
//完善消息头,设置发件人号码和发送时间
CMsvStore* messageStore = iSmsMtm->Entry().EditStoreL();
CleanupStack::PushL( messageStore );
CSmsHeader* hdr = CSmsHeader::NewL( CSmsPDU::ESmsDeliver, body );
CleanupStack::PushL( hdr );
hdr->SetFromAddressL(iNumber);
TTime nowTime;
nowTime.HomeTime();
hdr->Deliver().SetServiceCenterTimeStamp(nowTime);
hdr->StoreL(*messageStore);
messageStore->CommitL();
CleanupStack::PopAndDestroy(hdr);
CleanupStack::PopAndDestroy(messageStore);
// 修改当前消息索引为只读,这样收件箱列表处浏览会有回复选项
//但是如果在之前就设置ReadOnly就会导致SaveMessageL出错
newIndexEntry.SetReadOnly(ETrue);
//消息索引提交更改
iSmsMtm->Entry().ChangeL(newIndexEntry);
4.发生消息条目
其实发送消息可以使用客户端MTM方法,但是一般都是在活动对象中实现,或者实现Send-As API、CSendAppUi类来实现。以下代码简单给出客户端Mtm的方法:
//发送消息
//iMtm是在新建sms阶段设定
TMsvEntry msvEntry = iMtm->Entry().Entry();
//重新设定TMsvEntry
msvEntry.iDetails.Set(iRecipient->Des()); // set recipient info in details
msvEntry.SetInPreparation(EFalse); // set inPreparation to false
msvEntry.SetSendingState(KMsvSendStateWaiting); // set the sending state (immediately)
msvEntry.iDate.HomeTime(); // set time to Home Time
更多精彩
赞助商链接