当前位置: 代码迷 >> 移动应用 >> SMGP长短信请问
  详细解决方案

SMGP长短信请问

热度:989   发布时间:2016-04-25 08:31:37.0
SMGP长短信请教
目前API包使用是正常的。但是存在一个非常让人烦躁的问题.
长短信的问题.
比如我发的信息是200个中文,到了客户的手机,要显示5条显示完(即便是支持长短信的手机也是这样).
这段时间查了很多资料,发现关于CDMA的这块长短信的资料实在是少得可怜.

我要实现的效果是:不管配置文件有没有对发出去的短信最拆分,我打个比方,我的控制是100个字节.短信超过了50个汉字后,就会拆分成多条发出去.手机终端(支持长短信的手机)收到短信后是一条信息显示完。而不是多条.

之前查找的资料,是说加上TP_udhi(值为1),然后消息内容增加用户数据包头UDH.
现在尝试这样做,但是测试还是不如意.

求救!!!!

------解决方案--------------------
怎么没人顶!
------解决方案--------------------
关于如何发送长短信
发送长段信需要做的工作是
一、设置tlv字段TP_udhi为0x01,表示消息内容里面包含消息头(也就是说含长短信头)
二、内容前面需要增加6个字段
1、 字节一:包头长度,固定填写0x05;
2、 字节二:包头类型标识,固定填写0x00,表示长短信;
3、 字节三:子包长度,固定填写0x03,表示后面三个字节的长度;
4、 字节四到字节六:包内容:
a) 字节四:长消息参考号,每个SP给每个用户发送的每条参考号都应该不同,可以从0开始,每次加1,最大255,便于同一个终端对同一个SP的消息的不同的长短信进行识别;
b) 字节五:本条长消息的的总消息数,从1到255,一般取值应该大于2;
c) 字节六:本条消息在长消息中的位置或序号,从1到255,第一条为1,第二条为2,最后一条等于第四字节的值。

例子:
05 00 03 00 02 01
05 00 03 00 02 02

三、你还需要设置PkTotal和PkNumber
这个字段如果不设置并不影响用户手机对短信的拼装,但是会影响ismp的健权和计费,一组pktotal pknumber里面的数据ismp是当一条短信健权和计费。



特别说明:如果网关方式长短信一定要ucs-2编码,gbk如果发送的短信内容全是全角字符没问题,如果有半角的,很容易乱码
因为gbk,英文当1个字节;usc-2 中英文都2字节,所以拆分的时候不会出现汉字被截半个的问题

总体来说cdma的长短信跟gsm一样通过udh的方式实现的,而其他wap push和彩信的sl跟gsm差别较大