`

用 Java 通过串口发送手机短信

    博客分类:
  • java
阅读更多
引用
JAVA_HOME是 C:\jdk1.6.0_02
Path是 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
CLASSPATH是 .;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jar


用 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" 目录下
Jdk里面也有 jre里面也有这些目录,反正都考进去就没问题了,不行就多找找这个名字的目录都考进去
2. RxTx
  将 "rxtxSerial.dll" 拷贝到 "%JREHOME%/bin" 目录下
然后将 "comm.jar" 或者 "RXTXComm.jar" 加载到你的工程环境中就可以了,另外还要记着下载 log4j,因为 SMSLib 用到了它。

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

用 Java 通过串口发送手机短信(二)简单使用
先简单的来介绍一下如何使用 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, 所以在上面的代码中没有设置。
分享到:
评论
2 楼 hnzhoujunmei 2010-12-29  
为什么没有完整的源码啊?
1 楼 1314520litiexin 2010-01-18  
   
朋友你好·我想向您请教java读取串口信息发送短信这个功能  联系我行么  QQ:36278260  msn:li_tiexin@live.cn 必重谢

相关推荐

    JAVA编写的使用手机串口发送短信的程序

    用JAVA编写的使用手机串口发送短信的程序 功能简介: 手机通过串口与电脑连接以后,就可以使用该程序发送短信 如果是红外连接那么可以使用红外模拟串口的软件进行转换即可 有环境配置参考包中.txt ...

    Java串口编程 Java手机串口短信发送

    对于Java手机串口短信发送,这个实例通常涉及到通过串口连接GSM模块,然后通过AT命令来发送短信。GSM模块接收到特定的AT命令后,会执行相应的操作,如发送短信。以下是一个简单的步骤概述: 1. **建立连接**: 连接...

    java串口发送短信.zip

    在这个"java串口发送短信.zip"项目中,开发者使用了RXTX库来实现通过Java程序控制短信猫(SMS Modem)发送短信的功能。短信猫是一种硬件设备,它可以连接到计算机的串行接口(如COM口或USB口),并模拟GSM手机,从而...

    java实现通过串口与GSM猫相连从而发送短信

    Java 实现通过串口与 GSM 猫相连发送短信是一个常见的通信应用场景,主要涉及 Java 的串口编程技术以及 SMS(Short Message Service)协议的理解。在本文中,我们将深入探讨这个主题,了解如何利用 Java 来操作串行...

    java 串口发送短信库

    Java串口发送短信库是一种利用Java编程语言实现的类库,专用于通过串行通信接口发送短信。这个库设计简洁,使得开发人员可以方便地构建和发送PDU(Protocol Data Unit),这是SMS消息的一种二进制格式。PDU模式是GSM...

    java 串口通过AT 指令发送短信

    java读取串口通过AT指令发送短信 操作短信猫进行收发短信

    Java 使用SMSLib通过串口通讯收发短信

    在使用SMSLib时,Java程序会通过串口向GSM modem发送AT命令,以执行发送短信、接收短信、查询状态等功能。 6. **程序实现流程**: - 首先,需要在Java项目中引入SMSLib库。 - 然后,配置串口参数,如波特率、数据...

    smsSendByComm_java.rar_comm_java 串口_java 短信

    描述中提到的“sunfruit 用JAVA编写的使用手机串口发送短信的程序”进一步确认了这个项目的目的是通过Java来控制手机,利用手机的串口功能发送短信。 在IT行业中,串口通信(Serial Port Communication)是一种常见...

    Java使用短信猫发送短信(AT指令操作串口)

    本教程将聚焦于如何利用Java结合短信猫(Modem)发送短信,这通常涉及到AT指令集的使用以及串行通信。短信猫是一种硬件设备,能够通过SIM卡连接到移动网络,从而实现短信收发功能。在Java中,我们通常会借助特定的库...

    java 串口发短信例子

    java 串口发短信例子,用串口发送和接受短信。

    Java串口访问控制短信猫发送短信实例

    Java串口访问控制短信猫发送短信是嵌入式通信领域中的常见应用场景,主要涉及Java编程、串行通信以及短信猫设备的使用。本文将详细解析如何利用Java进行串口通信来操控短信猫发送短信。 首先,理解“短信猫”是非常...

    java代码实现短信猫发短信

    这可能包括发送短信到一个已知的手机号码,检查是否能成功发送,以及是否能接收到正确的返回信息。同时,考虑到可能存在的网络延迟和短信中心的处理时间,测试需要有适当的等待机制。 6. **代码注解**: 对于初学...

    基于串口的手机短信程序

    本文将深入探讨基于串口的手机短信程序,这是一种允许计算机通过串行通信接口与手机进行交互,实现发送和接收短信的技术。对于初学者来说,了解并掌握这一技术,能够为日后在物联网(IoT)、自动化控制等领域的工作...

    java短信猫多串口收短信

    短信猫(SMS Modem)是一种硬件设备,它通过串行接口连接到计算机,可以模拟手机接收和发送短信。本文将深入探讨如何使用Java进行短信猫的多串口管理,并解决smslib库可能出现的队列错误。 首先,我们需要理解Java...

    用串口通信实现手机短信的收发

    在串口通信中,我们需要使用AT命令来发送和接收短信,比如`AT+CMGF`用来切换短信模式(PDU或文本),`AT+CMGS`用于发送短信,`AT+CMGL`用于读取短信。 4. **编程实现**:在实际应用中,我们需要编写代码来控制串口...

    Java 利用RXTX串口工具使用短信猫

    在Java中,你需要根据选定的模式编写相应的发送函数,将短信内容转换成猫能理解的格式,并通过串口发送出去。 5. **接收短信**:短信猫接收到短信后,会通过串口将其回传。你需要监听串口的数据,并解析出短信内容...

    用短信猫发送短信java版及所需jar包

    标题中的“用短信猫发送短信java版及所需jar包”是指使用Java编程语言来通过短信猫设备发送短信的功能。短信猫是一种硬件设备,通常通过USB或串口与计算机连接,可以模拟手机SIM卡来发送和接收短信。这个项目提供了...

    comm_src.rar_comm_java 串口_串口_手机 串口

    标题“comm_src.rar_comm_java 串口_串口_手机 串口”和描述“实现串口手机短信发送程序很全面的源代码”暗示了这个压缩包包含了一套用于通过Java编程语言实现串口通信,尤其是与手机进行短信发送的源代码。...

    短信猫收发例子(用于短信猫串口编程)

    在"短信猫收发例子"中,这个OCX控件可能封装了与短信猫进行通信的函数和方法,包括初始化串口、发送短信、接收短信、查询状态等功能。开发者可以通过调用这些控件的方法,实现对短信猫的操作。 文件名为"smsdemo_pb...

Global site tag (gtag.js) - Google Analytics