文档介绍:用BREW发送普通短信的使用方法
摘要本文介绍了在BREW平台下如何用ITAPI接口的ITAPI_SendSMS()函数实现发送普通中文短消息的用法。
关键字 BREW ,ITAPI,SMS,短消息
基本调用方法
我们可以用BREW的ITAPI_SendSMS()函数来发送中/英文短消息。ITAPI_SendSMS()函数的原形如下:
int ITAPI_SendSMS
(
ITAPI *pITapi,
const char * pszDst,
const char * pszMsg,
AEECLSID clsDst,
PFNSMSSTATUS pfn,
void *pUser
)
其中:
pszDst——接收方的手机号码;
pszMsg——要发送的文本消息,要求格式为char*,如发中文,需要把UNICODE字符串强制转换成 const char*;
clsDst——对普通短信,该值为0;
pfn ——用户自己写的回调函数,用来返回发送的状态,该函数可有可无;
pUser——如果有回调函数,该值是给回调函数的输入参数;
例如,发送英文短信的方法为:
ITAPI_SendSMS(pITapi, "8581112222", "Hello World", 0, MyMOSMSNotify, pMe);
如果要发送中文短信,需要把中文字符串由AECHAR* 强制转换成(const char*),按照英文短信的发送方法发送就可以了。例子如下:
AECHAR w_string[]= { 0x4F60, 0x597D,0x4e2D,0x56FD, ‘\0’}; //你好中国
ITAPI_SendSMS(pITapi, "8581112222", (const char*)w_string, 0, MyMOSMSNotify, pMe);
回调函数的使用方法
ITAPI_SendSms()实际上是一个异步调用,即该函数发消息到系统底层,再由底层完成短消息的发送。所以短信发送成功与否的状态值需要CALL BACK函数返回。前面提到的回调函数pfn的作用是返回发送的状态值。如果程序中需要显示发送成功或失败的结果,则需要用户自己创建一个回调函数;反之,则可以只写一个空函数。
这里大家要注意区分ITAPI_SendSMS()的返回值和回调函数返回的状态值这两者的区别。前者是表明ITAPI_SendSMS()函数是否正确执行,即是否发送;由于是异步调用,消息发送是否成功则需要底层通过回调函数来通知。所以在回调函数里的状态值是真正的发送结果。
BREW API reference 定义了回调函数的类型为PFNSMSSTATUS:
typedef void (*PFNSMSSTATUS)(void * pUser, int16 status);
如果用户的回调函数名为MySmsNotify, 则其函数原形为:
void MySmsNotify(CSmsApp * pApp, int16 status);
如果要做显示发送结果的处理,我们建议在回调函里只把发送状态值status保存下来,在回调函数外处理显示结果;而不建议在回调函数里面直接显示发送结果。因为BREW API指