如何用java语言控制短信设备实现短信收发?

类别:Java 点击:0 评论:0 推荐:

JINDI JAVA 版二次开发包调用说明文档:

 

说明:本控件只适用于windows平台,如果您需要Linux平台控件请与我公司销售部联系。

 

一、JINDI  JAVA控件安装

1、  安装JINDI JAVA控件前先确认您是否安装了JDK,如果您还没有安装JDK,建议您到http://www.sun.com 下载并安装JDK1.4。

2、将我们提供给您的sendsms.jar 拷贝到 <JDK安装目录\jre\lib\ext>目录下

3、将我们提供给您的sendsms.exe、JinDiSMSControl.OCX 、MSCOMM32.OCX setings.ini拷贝到windows系统得system32 目录下,并更改setings.ini文件,具体如下:

       +-----------------------------------------------------------------+

|              settings.ini 文件                   |

  +-----------------------------------------------------------------+

  | 1 (在第一行输入您使用COM口)       |

  | +8613800100500 (在第一行输入短信中心号码)   |

  |  D:\JDK1.4\jre (在第三行输入JDK路径)         |

  +-----------------------------------------------------------------+

 

二、JinDi Java 控件的调用方法及例程

1、  发送短信请调用Sms class 的sendmsg方法

static boolean sendmsg(String msg,String phone)

msg 您要发送的短信内容

phone 接收者号码

例:

import cn.com.chundi.sendsms.*;

 

public class Sendmsg{

       public static void main(String args[]){

              String toPhone  = "13331012788";

              Sms sms1 = new Sms();

              if (args.length>=1)

              {

                     toPhone = args[0];

              }           

              boolean sendsucc = sms1.sendmsg("你好,测试!",toPhone);

              if(sendsucc){

                     System.out.println("send successful..............");

              }else{

                     System.out.println("send failure........");

              }

       }

}

 

 

2、  读短信请调用Sms class 的readmsg 方法

Read readmsg(String index)

读SIM卡中的 index 位置的短信

Index   SIM 卡中短信的位置(从1 开始,一般SIM中的容量是15—25条)

返回read 类对象(关于Read对象的说明后附)

 

ArrayList readmsg(String beginNo,String endNo)

读取SIM卡中 beginNo 位置至 endNo位置的短信

beginNo   读取SIM卡中短信的起始位置

endNo     读取SIM卡中短信的终止位置

返回 ArrayList 类对象(将其转换为Read对象使用)

例:

import cn.com.chundi.sendsms.*;

import java.util.*;

 

public class Readmsg{

  public static void main(String args[]){

    String index = null;

    String begin = null;

    String end = null;

    Sms sms1 = new Sms();

    if ( args.length > 1 ) {

      begin = args[0];

      end = args[1];

      System.out.println("正在读取SIM中第" + begin + "条至第" + end + "条短信...............");

      ArrayList listmsg = sms1.readmsg(begin,end);

      if (listmsg == null){

         System.out.println(" 读取操作失败! ");

      }

      else{

        int total = listmsg.size();        

        for (int i=0;i<total ; i++){

        Read msg = (Read) listmsg.get(i);

        if ((msg != null) && (msg.isempty()==false)){

        System.out.println("SIM中第" + msg.getno() + "条短信如下:");

        System.out.println("来自: " + msg.getoa());

        System.out.println("时间: " + msg.gettimestamp());

         System.out.println("内容: " + msg.getmsg());

       }

       else{

         System.out.println("SIM中第" + msg.getno() + "位置无短信");

       }  

     }

   }

 }

 else{

   if ( args.length >0){

     index = args[0];

     System.out.println("正在读取SIM中第" + index + "条短信.....................................");

     Read msg = sms1.readmsg(index);

     if ((msg != null) && (msg.isempty()==false)){

       System.out.println("来自: " + msg.getoa());

       System.out.println("时间: " + msg.gettimestamp());

       System.out.println("内容: " + msg.getmsg());

     }

     else{

       System.out.println("SIM中第" + index + "位置无短信");

     }                   

   }

 }      

}

}

 

 

3、  删除短信请调用Sms class 的 delete 方法

Delete deletemsg(String index)     

删除SIM卡中的 index 位置的短信

Index   SIM 卡中短信的位置(从1 开始,一般SIM中的容量是15—25条)

返回delete 类对象(关于Delete对象的说明后附)

 

ArrayList deletemsg(String beginNo,String endNo)

删除SIM卡中 beginNo 位置至 endNo位置的短信

beginNo    删除SIM卡中短信的起始位置

endNo     删除SIM卡中短信的终止位置

返回 ArrayList 类对象(将其转换为Delete对象使用)

例:

import cn.com.chundi.sendsms.*;

import java.util.*;

 

public class Deletemsg{

public static void main(String args[]){

String index = null;

String begin = null;

String end = null;

Sms sms1 = new Sms();

if ( args.length > 1 ) {

begin = args[0];

end = args[1];

System.out.println("正在删除SIM中第" + begin + "条至第" + end + "条短信.....................");

ArrayList listmsg = sms1.deletemsg(begin,end);

if (listmsg == null){

System.out.println(" 删除操作失败! ");

}

else{

int total = listmsg.size();        

for (int i=0;i<total ; i++){

Delete msg = (Delete) listmsg.get(i);

if ((msg != null) && (msg.isdelete()==true)){

System.out.println("SIM中第" + msg.getno() + "条短信成功删除");

}

else{

System.out.println("SIM中第" + msg.getno() + "条短信删除失败");

}  

}

}

}

else{

if ( args.length >0){

index = args[0];

System.out.println("正在删除SIM中第" + index + "条短信........................");

Delete del = sms1.deletemsg(index);

if ((del != null) && (del.isdelete()==true)){                                

System.out.println("SIM中第" + index + "条短信成功删除");

}

else{

System.out.println("SIM中第" + index + "条短信删除失败");

}                                

}

}           

}

}

 

 

三、附(Read类和 Delete 类):

1、Read 类:

       int getno()

       获取短信在SIM卡中的位置

       boolean isempty()

       判定该短信是否为空,返回true时getoa(),gettimestamp(),getmsg()将返回null对象,说明SIM中getno()位置没有短信。

String getoa()

获取短信对象

       String gettimestamp()

       获取短信的接收时间

       String getmsg()

       获取短信内容

      

Read类的实现

package cn.com.chundi.sendsms;

 

public class  Read {

       public Read(int no, boolean empty){

              this.no = no;

              this.empty = empty;

       }

       public Read(int no, String oa,String timestamp, String msg)       {

              this.no = no;

              this.oa = oa;

              this.timestamp = timestamp;

              this.msg = msg;

              empty = false;

       }           

 

       public String getoa() { return oa;}

       public String gettimestamp() { return timestamp; }

       public String getmsg() { return msg; }

       public int getno() { return no; }

       public boolean isempty() { return empty; }

 

       private boolean empty=true;

       private String oa =null;

       private String timestamp = null;

       private String msg = null;

       private int no = 0;

}

 

2、  Delete 类

int getno()

       获取短信在SIM卡中的位置

       boolean isdelete()

       判定该短信是否删除,返回true时成功删除

 

Delete 类的实现:

       package cn.com.chundi.sendsms;

 

public class Delete{

       public Delete(int no, boolean del)   {

                     this.no = no;

                     this.del = del;

       }           

 

       public int getno() { return no; }

       public boolean isdelete() { return del; }       

 

       private int no = 0;

       private boolean del = false;

}

金笛短信,沟通无限!<a href="http://www.sendsms.cnhttp://www.sendsms.cn">http://www.sendsms.cn</a>

本文地址:http://com.8s8s.com/it/it12696.htm