WEB开发网
开发学院手机开发Symbian 开发 Symbian OS应用开发 SMS的故事 阅读

Symbian OS应用开发 SMS的故事

 2010-05-31 19:53:00 来源:WEB开发网   
核心提示:one."));}else{// 设定为默认服务中心号码CSmsNumber* sc = 0;sc = &(serviceSettings->SCAddress(serviceSettings->DefaultSC()));header.Message().SetServiceCenterAddr
one."));

}

else

{

// 设定为默认服务中心号码

CSmsNumber* sc = 0;

sc = &(serviceSettings->SCAddress(serviceSettings->DefaultSC()));

header.Message().SetServiceCenterAddressL(sc->Address());

}

}

CleanupStack::PopAndDestroy();

... ...

CMsvEntrySelection* selection = new (ELeave) CMsvEntrySelection;

CleanupStack::PushL(selection);

selection->AppendL(movedId); // 添加我们要发送的sms,movedId在省略部分有定义,是TMsvId型变量

// 调用的这个函数是用于发送的,具体的代码后面介绍

SetScheduledSendingStateL(selection);

CleanupStack::PopAndDestroy(); // selection

return ETrue; // 到这里sms已被发送

---------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------

void ...::SetScheduledSendingStateL(CMsvEntrySelection* aSelection)

{

CBaseMtm* smsMtm = iMtm;

// 添加entry到任务列表

TBuf8<1> dummyParams;

CCommandAbsorbingControl::NewLC();

CMsvOperationWait* waiter = CMsvOperationWait::NewLC();

waiter->Start();

// 这个函数是关键

CMsvOperation* op= smsMtm->InvokeAsyncFunctionL(

ESmsMtmCommandScheduleCopy,

*aSelection,

dummyParams,

waiter->iStatus);

CleanupStack::PushL(op);

CActiveScheduler::Start(); //开始时间表中任务

CleanupStack::PopAndDestroy(3); // waiter, op, CCommandAbsorbingControl

}

---------------------------------------------------------------------------------------------------

需要我们注意的是:在发送sms的过程中大部分的操作都是用于设定发送sms时的参数,所以东西比较琐碎;如果您想自己实现这部分工作,给您的建议就是尽量采用一个比较通用的方法,无需设定一些让人捉摸不定的信息。在发送sms中起主要作用的还是CBaseMtm类,这个类以及从它继承的类负责sms的具体发送,所以整个过程的结束点一定是使用这些类的函数来实现发送的动作,犹如上述的InvokeAsyncFunctionL函数。

上一页  2 3 4 5 6 7 

Tags:Symbian OS 应用开发

编辑录入:coldstar [复制链接] [打 印]
赞助商链接