文档章节

短信的发送

 金笛子
发布于 2016/02/03 17:32
字数 733
阅读 135
收藏 3

  短信发送格式为: AA 02 +11Bytes手机号+数据。需要说明的是数据长度不超过140Byte,为了手机能够正确显示需经UNICODE 编码,因此每帧最多70个字符。手机号码采用ASCII编码,例如,”1”的ASCII编码为3113595313404ASCII编码为31 33 35 39 35 33 31 33 34 30 34

  以向手机13595313404发送“你好”为例,UNICODE编码为:4F60(你)597D(好)发送的信息为:AA 02 31 33 35 39 35 33 31 33 34 30 34 4F 60 59 7D 。在Windows 系统中可调用MultiByteToWideChar() 将字符串转换成UNICODE编码的格式。

  采用这种设备发送短信实现起来比较简单,需要注意的一点就是,发送短信不能太频繁,成功发送一条短信后需要等待23秒在发下一条,否则可能造成设备的死机。一旦设备死机,需要将设备断电重启一下。

  更为常见的一类设备,提供了GSM Modem,直接利用AT命令进行短信发送。九十年代初,AT命令仅被用于modem操作。由于没有控制移动电话文本消息的先例,因此开发了一种叫SMS Block Mode的协议,通过终端设备(TE)或电脑来完全控制SMSShort Message Service 短信服务)。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和HP共同为GSM研制了一整套AT命令,其中包含对短信的控制。AT命令在此基础上演化并被加入GSM 07.05[9]标准,以及之后的GSM 07.07[10]标准。目前对短信的控制共有三种实现途径:最初的Block Mode;基于AT命令的Text Mode;基于AT命令的PDU Mode。到现在,PDU已取代Block Mode,采用text模式比较简单,但是只能发送ASCII码,不能发送中文,而PDU模式开发起来相对复杂一些,但功能比较强大,对于中文采用UNICODE编码进行发送。

  AT AttentionAT 命令是一组是从TE (Terminal Equipment 终端设备DTE (Data Terminal Equipment 数据终端设备TA (Terminal Adapter 终端适配器)DCE (Data Circuit Terminating Equipment 数据电路终端设备)发送的控制MS (Mobile Station 移动基站)的功能与GSM 网络业务进行交互的一组命令集合。用户可以通过AT 命令来完成呼叫短信、电话本、数据业务、补充业务、传真等方面的控制

  AT 标准是一个面向行的命令语言。在这个应用中TE (终端设备状态),可以是任何大小的计算机, TA(终端适配器),指的是GSM调制解调器。该命令行由一串字母数字的字符组成,它发送到调制解调器来指示执行由字符指定的命令。转自bbs.sendsms.cn


本文转载自:

共有 人打赏支持
粉丝 1
博文 81
码字总数 30552
作品 0
海淀
私信 提问
请教一下高频率读写的情况下,mysql应该如何优化?

需求是这样的:目前手头项目有个帮用户发送点对点短信的功能,用户一次可能发送几千或上万条短信,服务端接受用户的发送任务后,使用一个待发池慢慢帮用户发。但是页面上用户需要能实时查询短...

Tek_Eternal
2014/08/27
444
4
Android: SMS TEL MAIL 使用集合

Android发送短信、打电话、发送邮件的程序集合。 短信发送模式包括: 1.使用SMSManager发送短信,发送的短信不存于“信息”中。 2.使用ContentResolver发送短信,短信存放于“信息”中。(网传...

鉴客
2011/10/24
1K
2
短信平台功能设计

1.药店后台人员编写短信发送模板,提交存健康人员进行审核 2.药店后台人员选择审核通过的模板进行短信发送,选择一批短信发送对象 3.点击发送后,向yd_message_sendlog表插入待发送信息(一个...

huilet
2014/11/10
7
0
基础总结篇之七:ContentProvider之读写短消息(二)

发送和写入短信 在某些场合,我们需要发送短信,并将短信写入数据源中,这时我们就需要了解一下发送短信机制和写入短信机制。 我们将试图发送一条短信到指定的地址,同时将短信的内容写入到短...

andy521zhu
2015/04/03
0
0
请教Android定时短信发送的问题

hi,我在做一个andorid定时发送短信的小程序 需要定时从后台获得需要发送短信的手机号码列表 假设我从后台获得20条需要发送的短信,然后for循环为每条短信开启一个线程去不断发送 同时每个线程...

Macrotea
2013/09/13
697
7

没有更多内容

加载失败,请刷新页面

加载更多

Spring boot中如何获取profiles环境

  实现ApplicationContextAware @Componentpublic class QiNiuPropertiesConfig implements ApplicationContextAware { /// 获取当前环境public String getActiveProfile() { ret......

writeademo
16分钟前
1
0
机器学习中的End-to-End到底是怎么回事?

简单讲就是,Input--->系统(这里指神经网络)--->Output(直接给出输入,NN神经网络就给出结果,一气喝成!!!) 借用一段对话:(http://dy.163.com/v2/article/detail/C3J6F2NJ0511AQHO....

火力全開
16分钟前
1
0
maven多个模块只编译并且只打包指定的模块

在多module的maven项目中,如果每次打包整个工程显得有些冗余和笨重。 命令:mvn clean package install -pl 模块的名称 -am

lifes77
18分钟前
0
0
eosjs中文手册【2.0】

访问地址:eosjs 2.0 中文手册 - 汇智网

汇智网教程
22分钟前
1
0
vue-cli 3 分环境打包

在vue-cli3的项目中, npm run serve时会把process.env.NODE_ENV设置为‘development’; npm run build 时会把process.env.NODE_ENV设置为‘production’; 此时只要根据process.env.NODE_...

灰白发
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部