Symbian OS应用开发 SMS的故事
2010-05-31 19:53:00 来源:WEB开发网有了上面的了解,不难看出sms的操作其实和我们上一讲所说的vCard有类似之处,下面我们来看看如何将sms的内容导出到文件。
这里会用到类CBaseMtm,看下面例程:
iSmsMtm->SwitchCurrentEntryL(aEntryId);
iSmsMtm->LoadMessageL(); // load the message
CRichText& body = iSmsMtm->Body(); //sms的内容存到CRichText控件对象中
TPtrC msg(body.Read(0));
WriteToFileL(msg);
iSmsMtm是CBaseMtm类型的指针变量,它当然需要初始化,如下方式:
1.iSession = CMsvSession::OpenAsyncL(*this);
// 该函数的参数应该是从MMsvSessionObserver继承过来的任何类.....它会和 session library 间建立一个异步连接...
//然后你可以在函数HandleSessionEventL中收到事件EMsvServerReady...
//事件到达表明同服务器间的通话已建立... 接着去得到 Mtm Registry,并返回 SMS mtm...
2.iMtmReg = CClientMtmRegistry::NewL(*iSession);
3.iMtmSms = static_cast
下面是WriteToFileL()函数的具体实现:
void WriteToFileL(const TPtrC &aMsg)
{ //设置存储路径以及文件
_LIT(KDirName,"");
_LIT(KFileName,"");
//连接文件服务器并生成相应文件夹
RFs fileSession;
fileSession.Connect();
fileSession.MkDirAll(KDirName);
RFileWriteStream writer;
writer.PushL();
User::LeaveIfError(writer.Replace(fileSession,
KFileName, EFileWrite));
//写入文件并确认
writer << aMsg;
writer.CommitL();
CleanupStack::PopAndDestroy();
fileSession.Close();
}
//以下头文件会使用到
#include
#include
上面的步骤清晰明了,无需多说,大家要注意一下CBaseMtm这个类的用法,因为在接下来,我们看到的新建sms同样会重点使用到这个类,而且使用的次数会更多。
更多精彩
赞助商链接