通过SMSLib实现发送手机短信
2009-07-06 22:07
295 查看
SMS(Short Messaging Service)即短消息业务,是由Etsi所制定的一个规范(GSM 03.40 和 GSM03.38)。当使用其7-bits编码时,可以发送最多160个字符;使用8-bit编码,最多可以发送140个字符,通常无法直接通过手机显示;还有用16-bit编码时,最多70个字符,被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。
目前程序中发送短信大致有三种途径:
1、 向当地的电信部门申请网关,不需要额外的设备,利用对方提供的API调用程序发送短信,适用于大型的通信公司。
2、 借助像GSM MODEM之类的设置(支持AT指令的手机也行),通过数据线连接电脑来发送短信,这种方法比较适用于小公司及个人。要实现这种方式必须理解串口通信、AT指令、短信编码、解码。
3、 利用网站实现,由网站代发短信数据,对网站依赖性太高,对网络的要求也比较高,不适于进行项目开发。
本文选择了AT命令方式作为讲解。
所谓AT,即Attention。AT命令集是从Terminal Equipment或Data Terminal Equipment向Terminal Adapter或Data Circuit Terminating Equipment发送的,通过TA、TE发送AT命令来控制Mobile Station的功能与GSM网络业务进行交互。我们可以通过AT命令进行呼叫短信、电话本、数据业务、补充业务、传真等方面的控制。 由于AT指令操作是非常之简单的,我们完全可以自己写组件完成相关操作,而且针对联通、移动、小灵通等不同的服务需求,自制组件反而更容易控制及扩充。
在Java编程中可以通过Java Comm进行手机与电脑的串口通讯,并通过AT指令控制手机操作。在Google code上有个SMSLib项目,是一个以AT指令实现手机操作的组件(http://code.google.com/p/smslib/downloads/list)。
SMSLib使用示例如下:
目前程序中发送短信大致有三种途径:
1、 向当地的电信部门申请网关,不需要额外的设备,利用对方提供的API调用程序发送短信,适用于大型的通信公司。
2、 借助像GSM MODEM之类的设置(支持AT指令的手机也行),通过数据线连接电脑来发送短信,这种方法比较适用于小公司及个人。要实现这种方式必须理解串口通信、AT指令、短信编码、解码。
3、 利用网站实现,由网站代发短信数据,对网站依赖性太高,对网络的要求也比较高,不适于进行项目开发。
本文选择了AT命令方式作为讲解。
所谓AT,即Attention。AT命令集是从Terminal Equipment或Data Terminal Equipment向Terminal Adapter或Data Circuit Terminating Equipment发送的,通过TA、TE发送AT命令来控制Mobile Station的功能与GSM网络业务进行交互。我们可以通过AT命令进行呼叫短信、电话本、数据业务、补充业务、传真等方面的控制。 由于AT指令操作是非常之简单的,我们完全可以自己写组件完成相关操作,而且针对联通、移动、小灵通等不同的服务需求,自制组件反而更容易控制及扩充。
在Java编程中可以通过Java Comm进行手机与电脑的串口通讯,并通过AT指令控制手机操作。在Google code上有个SMSLib项目,是一个以AT指令实现手机操作的组件(http://code.google.com/p/smslib/downloads/list)。
SMSLib使用示例如下:
public class test { public static void main(String[] args) { Service srv = new Service(); OutboundMessage msg = new OutboundMessage("account", "content"); //com 串口名,比如COM1或者/dev/ttyS1 //1234 端口速度,WAVECOM是9600 SerialModemGateway gateway = new SerialModemGateway("SMSATCommandSubscriptionImpl", "com", 1234, null, null, srv.getLogger()); gateway.setInbound(true); gateway.setOutbound(true); gateway.setSimPin("0000"); gateway.setOutboundNotification(new IOutboundMessageNotification() { public void process(String string, OutboundMessage outboundMessage) { } }); srv.addGateway(gateway); try { srv.sendMessage(msg); srv.stopService(); } catch (Exception e) { e.printStackTrace(); } } }
相关文章推荐
- 通过SMSLib实现发送手机短信
- 通过SMSLib实现发送手机短信
- Linux平台,使用JavaComm3 API及SMSLib项目实现在Web Application中发送手机短信的功能
- vue 实现通过手机发送短信验证码注册功能
- 通过SMSLib库实现Java程序发送短信
- c#实现手机短信发送(3)
- java调接口实现发送手机短信验证码功能,手机验证码,接口调用
- java实现的一个发送手机短信的程序
- 在JAVA中通过短信的形式发送到手机号码上
- 通过串口发送手机短信(C#版)
- [转]asp.net利用Web Service实现短信发送致手机
- 利用java实现的一个发送手机短信的小例子
- java实现发送手机短信
- .net平台手机管理软件开发(12)—— 短信部分 通过RS232发送和接收短信
- 用 Java 通过串口发送手机短信(一)环境安装设置
- 微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送
- 用C#通过Nokia手机发送短信
- java实现发送手机短信
- 通过Web Service发送手机短信
- [导入]用C#通过Nokia手机发送短信(使用Nokia SDK3.0/原创)