用 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, 所以在上面的代码中没有设置。

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

http://www.blogjava.net/qujinlong123/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值