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

Windows Mobile 实现发送短信

 2010-08-22 13:00:00 来源:WEB开发网   
核心提示:在实际应用中短信发送不出去,但是SmsSendMessage的返回值是S_OK值,Windows Mobile 实现发送短信(3),在一些文章中有人这样认为是短信编码的问题造成的,如果编码格式不对可能造成短信中心网关把短信给吞掉的情况,)PS_MESSAGE_CLASS1:The message should be s

在实际应用中短信发送不出去,但是SmsSendMessage的返回值是S_OK值。在一些文章中有人这样认为是短信编码的问题造成的。

如果编码格式不对可能造成短信中心网关把短信给吞掉的情况,程序虽然调用成功,但是就是目标号码收不到短信。函数参数中的后三个参数可以不用或设默认值都可以。

起初我也是认为这个地方造成的,很是兴奋。短信的回复内容恰为字母,我误以为短信内容此时是7-BIT的短消息,短信网关把短信给吞掉了,造成目标号码收不到短信。在练习中却也阴差阳错的成功了。很高兴的把理由归到了这个地方。并这样总结:SmsSendMessage可以支持7-bit的ASCII码的短消息,也支持16-bit的unicode的短消息。但内容为ASCII的时候,短信编码为 SMSDE_GSM或SMSDE_OPTIMAL,当内容不全是ASCII的时候,短信编码为SMSDE_GSM或SMSDE_OPTIMAL。所以回复内容改为汉字即可。

但是这样对么?起初我认为我的解释很合理.但是我却发现我的一个参数与原来的程序不一样.

是我在尝试中无意修改了一个参数,将

tpsd.psMessageClass = PS_MESSAGE_CLASS1;

修改为了

tpsd.psMessageClass = PS_MESSAGE_CLASSUNSPECIFIED;

这是发送短信中的运营商的指定数据TEXT_PROVIDER_SPECIFIC_DATA,它的参数psMessageClass是指

Text Short Message Service (SMS) messages with the appropriate flag can replace previously received notifications with a similar flag and originating address.

它有以下五个值:

PS_MESSAGE_CLASS0: The message should be displayed immediately but not stored. The MS shall send an acknowledgement to the service center when the message has successfully reached the MS. (被接受后立即显示但不存储(称为闪信)。需要向SMSC发送确认信息。)

PS_MESSAGE_CLASS1:The message should be stored and an acknowledgement should be sent to the Service Center when it is stored.(接收后被存储,一旦存储,需要向SMSC发送确认信息。)

PS_MESSAGE_CLASS2:The message should be transferred to the SMS data field in the subscriber identity module (SIM) before an acknowledgement is sent to the Service Center.

PS_MESSAGE_CLASS3:When the message has successfully reached the destination

上一页  1 2 3 4  下一页

Tags:Windows Mobile 实现

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