联通长短信开发--使用smproxyapi.jar

标签: 联通 短信 开发 | 发表时间:2014-09-26 15:32 | 作者:
出处:http://www.iteye.com
联通短信是基于sgip协议的,作为第三方接入使用的是smproxyapi.jar包来开发短信功能。联通普通短信长度是140字节,超长就会报错不能提交给网关。起初规避措施是自己把长短信拆分,然后分条发送,这样手机用户接收到的就是多条短信,体验不好。后来通过查资料发现可以使用udhi头来使多条短信最终能合成一条短信展示给手机用户。

1.首先要设置tp_udhi为1,代表后面每条短信内容前面几个字节是udhi头.如果是普通短信设置为0即可。 0:不含任何头信息, 1:含头信息。参考协议:gsm03.40  9.2.3.23

2.如果一条长短信被分为了3条,则每条短信正文内容前面需要添加一个6字节的udhi头。
       
// 头信息。包头一共6个字节,如下: 
        // 1、字节一:包头长度,固定填写0x05;
        // 2、字节二:包头类型标识,固定填写0x00,表示长短信;
        // 3、字节三:子包长度,固定填写0x03,表示后面三个字节的长度;
        // 4、字节四到字节六:包内容:
        // 1)字节四:长消息参考号,每个SP给每个用户发送的每条参考号都应该不同,可以从0开始,每次加1,最大255,便于同一个终端对同一个SP的消息的不同的长短信进行识别;
        // 2)字节五:本条长消息的的总消息数,从1到255,一般取值应该大于2;
        // 3)字节六:本条消息在长消息中的位置或序号,从1到255,第一条为1,第二条为2,最后一条等于第四字节的值。
        byte[] tp_udhiHead = new byte[6];
        tp_udhiHead[0] = 0x05;
        tp_udhiHead[1] = 0x00;
        tp_udhiHead[2] = 0x03;
        tp_udhiHead[3] = 0x00;// 初始化,后面会具体赋值
        tp_udhiHead[4] = 0x00;// 初始化,后面会具体赋值。
        tp_udhiHead[5] = 0x00;// 初始化,后面会具体赋值。

上面的第四个字节代表每组短信(比如一条长短信分为3条短信,则这3条为一组)的标识,不强制必须唯一,本人这样赋值:
tp_udhiHead[3] = (byte)(int)(Math.random() * 255);


3.编码。messageCoding要设置为8,即UCS2编码,也就是短信内容要使用smsContent.getBytes("UTF-16BE");来获取字节,然后前面拼接上6个字节的udhi头。普通短信messageCoding设置为15即可。

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [联通 短信 开发] 推荐:

联通长短信开发--使用smproxyapi.jar

- - ITeye博客
联通短信是基于sgip协议的,作为第三方接入使用的是smproxyapi.jar包来开发短信功能. 联通普通短信长度是140字节,超长就会报错不能提交给网关. 起初规避措施是自己把长短信拆分,然后分条发送,这样手机用户接收到的就是多条短信,体验不好. 后来通过查资料发现可以使用udhi头来使多条短信最终能合成一条短信展示给手机用户.

伯克利学生开发“短信浏览器”Smozzy ,让Android 用户通过短信浏览互联网

- 锋 - 36氪
你有没有想过,手机没有开通数据套餐如何上网. Smozzy (下载地址)就是一个可以让没有数据套餐的用户通过手机浏览互联网的Android 应用. Smozzy 的界面很简单,只有一个地址栏/搜索栏以及一个WebView 用于呈现网页内容. 当用户在地址栏键入一个网址或者一个搜索关键词后,Smozzy 就会通过短信(SMS)或者彩信(MMS)发出请求到服务器,再由服务器请求相关网页后,按照短信或者彩信的格式发送到客户端.

三个月从idea进化成产品的短信群聊服务GroupMe走向全球,支持中国移动、中国联通和中国电信号码

- Ray - 36氪
去年8月份我们报道过一家在TC Disrupt上诞生的idea并在三个月内做出了产品的创业公司 – GroupMe,当时只有美国手机用户才能使用它的服务与朋友们进行保密的短信群聊. 今天,这款应用推出了3.0版本,增加了私信功能、“Questions”模块以及最重要的,全球接入. 打开网站的注册界面你会发现它支持中国移动、中国联通以及中国电信的手机号码.

监听短信

- - CSDN博客推荐文章
在监听短信在这个功能中,通知观察者的工作已经有别人做好,我们只需要注册一个观察者即可. System.out.println( new Date(date)+" 您收到 " + address +"给你发的一封短信,短信内容为: \n" +body );. 最后千万别忘了在清单文件上加上所需要的相应权限.

Android 短信发送

- - CSDN博客推荐文章
在AndroidMainfest.xml中应加入:. . 作者:h7870181 发表于2012-11-7 22:13:25 原文链接. 阅读:5 评论:0 查看评论.

西游里的重口味短信

- eFun - 河蟹娱乐
为师说过多少次了,果汁和碳酸饮料对皮肤不好,你看为师每天洗脸水都放一点盐的——养颜靠自己. 你弄条肥皂塞进去不就行了吗,好臭~善哉.   八戒的短信:老婆,已搞到子母河水,试过很灵,明天快递给你.   悟空:敖广兄,我一直很爱听你讲故事. 听到你和令堂的故事,让我非常感动,我流泪了.   唐僧:女王啊,你用其它女子的ID,在网上挑逗贫僧,贫僧上钩了,这说明什么.

短信“被转移”致被盗

- Jet - cnBeta.COM
收到一条10086的短信,说自己开通了“短信转移”业务,第二天账户就莫名被盗了1000元. 幸好支付宝快捷支付有全额赔付的承诺,才没有造成资金损失. 上海的周晨(化名)打来电话,提醒大家千万小心“短信转移”这类“奇怪”的业务.

android 发短信、打电话、发邮件

- - ITeye博客
需要权限 android.permission.SEND_SMS. 使用android.telephony.SmsManager类. sendDataMessage()接受一个附加参数以指定一个端口号,还会接受一个字节数组(不是一个String 消息). sendMultipartTextMessage()支持在整条消息大于SMS规范所允许的大小时发送文本消息.

Android短信蠕虫XXshenqi分析

- - 极客范 - GeekFan.net
今天从余弦大大微博上看到了这款Android短信蠕虫的信息,于是自己下载了一款研究,看到网上很多报告的md5值不同,不知道是否是变种. 接下来就分析一下,这款病毒究竟做了些什么. 病毒分为两个部分,一个是XXshenqi.apk,另一个是com.android.Trogoogle.apk. 后者存在于前者解压文件下的assets目录中.

叫人失望的联通

- Leo - FeedzShare
来自: 白板报 - FeedzShare  . 发布时间:2011年10月01日,  已有 4 人推荐. 工信部为了平衡各大运营商的关系,把wcdma--国际通行的3G网络--这块肥肉给了中国联通. 有人认为,联通从此可以携iPhone打一场翻身仗了. 然而,从我和身边朋友的经历来看,联通的服务与它所掌握的技术,实在难以匹配.