WEB开发网
开发学院手机开发Windows Mobile 开发 Windows Mobile 实现发送短信 阅读

Windows Mobile 实现发送短信

 2010-08-22 13:00:00 来源:WEB开发网   
核心提示:Windows Mobile 发送短信的问题最近在工作中遇到一个比较怪异的现象,在某些省区与SP的短信交互存在问题,Windows Mobile 实现发送短信,短信发送不出去,查了一下原因:SmsSendMessage参数设置的问题

Windows Mobile 发送短信的问题

最近在工作中遇到一个比较怪异的现象,在某些省区与SP的短信交互存在问题,短信发送不出去。查了一下原因:SmsSendMessage参数设置的问题。

在Windows Mobile 5.0SDK的HelloSMS例子中,发送短信的代码是这样写的

void SendSMS(BOOL bSendConfirmation, BOOL bUseDefaultSMSC, LPCTSTR lpszSMSC, LPCTSTR lpszRecipient, LPCTSTR lpszMessage)

{

SMS_HANDLE smshHandle;

SMS_ADDRESS smsaSource;

SMS_ADDRESS smsaDestination;

TEXT_PROVIDER_SPECIFIC_DATA tpsd;

SMS_MESSAGE_ID smsmidMessageID;

// try to open an SMS Handle

if(FAILED(SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, &smshHandle, NULL)))

{

MessageBox(NULL,

(LPCTSTR)LoadString(ghInstance, IDS_ERROR_SMSOPEN, 0, 0),

(LPCTSTR)LoadString(ghInstance, IDS_CAPTION_ERROR, 0, 0),

MB_OK | MB_ICONERROR);

return;

}

// Create the source address

if(!bUseDefaultSMSC)

{

smsaSource.smsatAddressType = SMSAT_INTERNATIONAL;

_tcsncpy(smsaSource.ptsAddress, lpszSMSC, SMS_MAX_ADDRESS_LENGTH);

}

// Create the destination address

smsaDestination.smsatAddressType = SMSAT_INTERNATIONAL;

_tcsncpy(smsaDestination.ptsAddress, lpszRecipient, SMS_MAX_ADDRESS_LENGTH);

// Set up provider specific data

memset(&tpsd, 0, sizeof(tpsd));

tpsd.dwMessageOptions = bSendConfirmation ? PS_MESSAGE_OPTION_STATUSREPORT : PS_MESSAGE_OPTION_NONE;

tpsd.psMessageClass = PS_MESSAGE_CLASS1;

tpsd.psReplaceOption = PSRO_NONE;

tpsd.dwHeaderDataSize = 0;

// Send the message, indicating success or failure

if(SUCCEEDED(SmsSendMessage(smshHandle, ((bUseDefaultSMSC) ? NULL : &smsaSource),

&smsaDestination, NULL, (PBYTE) lpszMessage,

1 2 3 4  下一页

Tags:Windows Mobile 实现

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