`
xiao_feng68
  • 浏览: 103023 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

smslib

阅读更多
用 Java 通过串口发短信其实很简单,因为有现成的类库供我们使用。有底层的类库,也有封装好一点的类库,下面我介绍一下在 Win32 平台下发送短信的方法。
如果你想用更底层的类库开发功能更强大的应用程序有两种选择:一个是 SUN Java Comm(下载地址:javacomm20-win32.zip),另一个是 RxTx (下载地址:Rxtx.zip)
用这两个类库开发程序的先决条件是你要很好掌握串口的知识,比如 AT 命令等,这些基本知识学起来是需要一定时间的,不过不用担心,现在也有开源的已经封装好的类库供我们使用,这就是 SMSLib - SMS Processing Libraries (下载地址:SMSLib),今后的几篇系列文章主要目的就是介绍 SMSLib 的使用,今天首先就是要安装环境了,注意最新的 SMSLib 只能在 JRE5.0 或以后的版本才能运行。
SMSLib 也是构建在 SUN Java Comm 和 RxTx 基础之上的,这两个类库你可以自己选择,不过 SMSLib 默认采用的是 SUN Java Comm(即你下载下来的 SMSLib 包中的 dist\lib 目录下的 smslib-2.1.2.jar 是用 SUN Java Comm 编译生成的),
如果你想更换成 RxTx 就需要更改 SMSLib 的源文件并重新编译,具体方法为:
将 src\java\org\smslib 文件夹下的 CSerialDriver.java 这个文件的 "import javax.comm.*;" 修改为 "import gnu.io.*;",然后用 ant 工具重新编译生成的 jar 文件就是基于 RxTx 实现的。
下面介绍一下 SUN Java Comm 和 RxTx 的安装过程:
1. SUN Java Comm:
  将 "javax.comm.properties" 拷贝到 "%JREHOME%/lib" 目录下
  将 "win32com.dll" 拷贝到 "%JREHOME%/bin" 目录下
2. RxTx
  将 "rxtxSerial.dll" 拷贝到 "%JREHOME%/bin" 目录下
然后将 "comm.jar" 或者 "RXTXComm.jar" 加载到你的工程环境中就可以了,另外还要记着下载 log4j,因为 SMSLib 用到了它。

如果对串口有兴趣的朋友可以去研究一下 AT 命令,直接使用 SUN Java Comm 和 RxTx 编写应用程序,可以实现更强大的功能。

http://www.blogjava.net/qujinlong123/

先简单的来介绍一下如何使用 SMSLib 收发短信。
SMSLib 的唯一的入口类是 CService 类,该类主要负责设置各种访问手机的参数,以及提供收发短信的功能。
CService 类只有一个构造函数 CService(String port, int baud, String gsmDeviceManufacturer, String gsmDeviceModel) 其中 port 是串口的端口号如 "COM5",baud 是访问串口的速率,该值的设定可以根据你的设备管理器里面的串口的属性中支持的波特率设定合适的值,gsmDeviceManufacturer, gsmDeviceModel 这两个参数主要是用来确定具体的 ATHandler 的实现,如果你想用 SMSLib 默认的 ATHandler,这两个值都可以设置为 null 或者 "", 如果你想采用适合你自己手机型号的特定的 ATHandler 的时候,只要自己写一个继承 AbstractATHandler 的实现类,然后再用相关名称标识设置 gsmDeviceManufacturer, gsmDeviceModel 的值就可以了。

接收短信的代码如下:
1     try
2     {
3       CService srv = new CService("COM5", 9600, null, null);
4
5       srv.connect();
6
7       LinkedList messageList = new LinkedList();
8
9       srv.readMessages(messageList, CIncomingMessage.MessageClass.All);
10
11       // TODO: 处理返回的 messageList。
12
13       srv.disconnect();
14     }
15     catch (Exception e)
16     {
17       e.printStackTrace();
18     }
上面的代码是读取手机中全部的短信,你也可以通过设置 CIncomingMessage.MessageClass 参数来读取不同类型的短信,比如 CIncomingMessage.MessageClass.Read 表示只读取已读短信,CIncomingMessage.MessageClass.Unread 表示只读取未读短信,你也可以使用 readMessages(LinkedList messageList, int messageClass, int limit) 读取你想要的指定数目的几条短信。

发短信的过程也很简单,代码如下:
1     try
2     {
3       CService srv = new CService("COM5", 9600, null, null);
4
5       srv.connect();
6
7       COutgoingMessage msg = new COutgoingMessage("138102*****", "我的第一条短信。。。");
8
9       msg.setMessageEncoding(CMessage.MessageEncoding.EncUcs2);
10
11       srv.sendMessage(msg);
12
13       srv.disconnect();
14     }
15     catch (Exception e)
16     {
17       e.printStackTrace();
18     }
发送中文短信时要设置消息的编码方式为 CMessage.MessageEncoding.EncUcs2,而且还要设置手机发送短信的协议为 PDU 模式,CService 默认的协议就是 PDU, 所以在上面的代码中没有设置。

在后面的文章中我会继续介绍收发短信时各个参数的意义及如何设置。

http://www.blogjava.net/qujinlong123/
分享到:
评论

相关推荐

    smslib-v3.3.0-src.zip_SMSLIB_smslib v3_smslib-3.3.0b2.zip_smslib

    标签中的".smslib_v3"和".smslib-3.3.0b2.zip"、".smslib-3.3.3"、".smslib3.3.3"暗示了该库的不同版本,其中".smslib-3.3.0b2.zip"可能是早期的测试版本,而".smslib-3.3.3"可能是最终稳定版。这显示了SMSLib的更新...

    smslib-v3.5.2

    **smslib-v3.5.2** 是一个基于Java的库,专为简化短信猫(Short Message Service Modem,简称SMS Modem)的开发而设计。这个库的主要目的是帮助开发者快速构建能够通过短信猫发送和接收短信的应用程序,从而节省在...

    smslib-3.5.4.jar

    《smslib-3.5.4.jar:短信猫通信库详解》 smslib-3.5.4.jar 是一个专为短信猫设备提供通信服务的Java库,版本号为3.5.4。这个库的核心功能是使得开发者能够通过编程方式便捷地与短信猫进行交互,实现短信的发送、...

    smslib-v3.2.1.zip_SMS receiving_SMSLIB_SMSLib-Java_java smslib_s

    SMSLib是一个功能强大的Java库,专门用于发送和接收SMS(短消息服务)消息。这个"smslib-v3.2.1.zip"文件包含了该库的版本3.2.1,是一个用于开发SMS应用的工具包。它允许开发者通过Java语言在各种平台上来实现短信...

    Java短信收发;SMSLIB使用;java接收短信;java发送短信

    SMSLIB是一个用Java编写的开源库,它提供了短信发送和接收的功能,为开发者提供了方便的API来实现短信服务。本篇将详细介绍如何使用SMSLIB进行Java短信收发,并结合实际例子进行说明。 首先,理解SMSLIB的核心概念...

    SMSLib-Java-v1.1.0.zip_SMSLIB_smslib ja_服务平台

    SMSLib是一个功能强大的Java库,专门用于实现短信的发送、接收和管理。它在标题中被称为"SMSLib-Java-v1.1.0.zip_SMSLIB_smslib ja_服务平台",表明这是一个针对Java开发者的资源包,版本号为v1.1.0,且可能包含了...

    smslib-3.5.0.jar

    【smslib-3.5.0.jar】是一个Java库,主要服务于短信通信,特别是与“短信猫”(Modem)设备进行交互。这个库在IT领域中被广泛应用于需要通过短信进行通信的系统,比如自动通知、远程控制、监控以及其他需要短信功能...

    smslib .net和java示例

    标题"smslib .net和java示例"表明这是一个关于使用smslib库进行.NET和Java平台上的短信猫(Modem)开发的示例集合。短信猫是一种硬件设备,通常用于通过调制解调器发送和接收短信。 描述中提到"java版本的短信猫...

    短信猫开发smslib源码

    【短信猫开发smslib源码】是一个用于与短信猫设备进行通信的开源库,主要针对Java平台。smslib是一个功能强大的库,它提供了一种简单而有效的方式来发送和接收通过短信猫设备进行的短消息。这个库对于那些需要在应用...

    smslib-v3.5.1

    【smslib-v3.5.1】是一款基于Java编写的开源库,主要用于通过短信猫(Modem)进行短信的发送和接收。这个库为开发者提供了一种方便、灵活的方式来实现与移动通信设备的交互,从而在各种应用中实现短信功能,如企业...

    smslib-v3.5.2.zip

    【smslib-v3.5.2.zip】是一个包含smslib库的版本3.5.2的压缩包。smslib是一个开源的Java库,专门用于发送和接收短消息(SMS),支持多种通信协议,如串行端口、蓝牙、GSM modem、3G调制解调器、GSM网络中的SMS中心...

    SMSLIB+RXTX 短信猫开发模块

    SMSLIB和RXTX是两个关键的开源库,用于与短信猫进行通信。 SMSLIB(Short Message Service Library)是一个用Java编写的开源库,它提供了方便的API接口,使得开发者可以轻松地在应用程序中集成短信功能。SMSLIB支持...

    smslib java发送短信

    【标题】"smslib java发送短信"涉及到的是Java平台下使用smslib库来实现短信发送的功能。smslib是一个开源的Java库,专为开发者提供发送和接收短信的能力,尤其适用于那些需要通过短信猫(Modem)或其他短信网关进行...

    SMSLIB短信猫发送短信

    【标题】"SMSLIB短信猫发送短信"是一个基于Java编程语言的Eclipse项目,它利用了SMSLIB组件来实现通过串口与短信猫设备进行通信,从而实现短信的发送功能。这个项目对于需要进行批量短信发送或者自动化短信通知的...

    短信开发包 smslib.jar

    标题中的“短信开发包 smslib.jar”指的是一个用于开发短信应用的Java库,名为smslib。这个库主要用于通过各种接口,如短信猫(Modem)或其他支持短信功能的硬件设备,实现短信的发送和接收。smslib是一个开源项目,...

    SMSLib指南以及开发包

    **SMSLib指南及开发包详解** SMSLib是一个强大的开源库,专为Java平台设计,用于发送和接收短信。它提供了一种简单而高效的方式来处理移动通信,尤其在企业级应用中,如自动化通知、客户服务或者远程监控系统。在这...

    smslib-v3.4.4.zip

    **SMSLib v3.4.4 知识点详解** SMSLib是一个强大的开源库,专为Java平台设计,用于通过串行通信接口控制手机进行短信的发送、接收以及执行其他相关操作。它允许开发者在各种应用程序中集成短信功能,如监控系统、...

    smslib-v3-3.5.4 java短信开发库

    【smslib-v3-3.5.4 Java短信开发库】是Java编程环境中用于构建短信应用的一个开源库,尤其适用于需要进行短信发送、接收或管理的企业级系统。这个库为开发者提供了一组丰富的API,方便地集成短信功能,使得开发者...

Global site tag (gtag.js) - Google Analytics