Categories: Lang-CN | SMS
This page was last modified 09:11, 28 June 2007.
S60第三版中访问SMS设置的新API
From Forum Nokia Wiki
- 设备, 软件 版本:
S60 3rd Edition
- 说明:
因为S60第三版中出于平台安全的考虑,所有信息设置已经被转移到Central Repository数据存储中。这样的转变导致老的SMS设置API(如CSmsSettings存储和输出函数)无法使用,当需要在S60第三版上发送一个短信时再使用它们会引发KErrGsmSMSUnspecifiedProtocol和KErrGsmSMSInvalidMandatoryInformation错误。
- 详细描述:
现在在CSmsAccount中有一个新的API,下面这段代码就展示了如何使用该类去设置SMSC地址以便发送消息。
// ---------------------------------------- // // Sets the message center to the message // // ---------------------------------------- TInt CFW3MsgEngine::SetSMSCL() { TInt err = 0; // CSmsHeader encapsulates data specific for sms messages, // like service center number and options for sending. CSmsHeader& header = iMtm->SmsHeader(); CSmsSettings* settings = CSmsSettings::NewL(); CleanupStack::PushL(settings); CSmsNumber* sc = CSmsNumber::NewL(); //CSmsNumber* sc = 0; CleanupStack::PushL(sc); //--------- SMSC & header set-up settings->CopyL(iMtm->ServiceSettings()); // restore existing settings // set send options settings->SetDelivery(ESmsDeliveryImmediately); // set to be delivered immediately header.SetSmsSettingsL(*settings); // Set SMSC address if (header.Message().ServiceCenterAddress().Length() == 0) { // No smsc set. We assume there is at least one sc number defined and use // the default SC number. CSmsSettings* serviceSettings = &(iMtm->ServiceSettings()); // if number of scaddresses in the list is null if (!serviceSettings->ServiceCenterCount()) // New messaging API uses new methods { // here there should be a dialog in which user can add sc number _LIT(KNotSet,"SMSC not set"); // Display a Note CAknGlobalNote* globalNote = CAknGlobalNote::NewLC(); globalNote->ShowNoteL(EAknGlobalInformationNote , KNotSet); CleanupStack::PopAndDestroy(); // globalNote } else { // set sc address to default. sc->SetAddressL((serviceSettings->GetServiceCenter(serviceSettings->DefaultServiceCenter())).Address()); // New messaging API uses new methods header.Message().SetServiceCenterAddressL(sc->Address()); } } //--------- SMSC & header set-up CleanupStack::PopAndDestroy(2); // sc, settings return err; }
