短信平台API说明书
Version1.2
一、主要接口函数:
1、查询短信:
设置接收到的短信状态,inMessage是接收到的某条短信,函数返回这条短信是否已经被处理了
void setHandled(Sms inMessage);
查询未处理的短信,返回接收到的未进行处理的短信列表
List findUnhandledMessage();
查询某个时间段内的短信,startDate是起始时间,endDate是结束时间,返回的是在这个时间段内的所有短信,包括接收到的短信和发送出去的短信。
List findMessageByTime(Date startDate, Date endDate);
查询某个时间段内的短信,startDate是起始时间,endDate是结束时间,返回的是在这个时间段内接收到的所有短信,包括已处理的和未处理的。
List findInMessageByTime(Date startDate, Date endDate);
查询某个时间段内的短信,startDate是起始时间,endDate是结束时间,返回的是在这个时间段内接收到的所有短信,包括已分发的和未分发的。
List findOutMessageByTime(Date startDate, Date endDate);
查询指定号码对应的短信,可以查询指定号码在接收到的短信中作为发送者的短信和在发送的短信中作为接收者的短信,这些短信都没有状态的限定,将所有对应的短信都列出来;参数number是一个String类型,表示指定号码。
List findMessageByNumber(String number);
在接收队列中查询指定号码对应的短信。
List findInMessageByNumber(String number);
在发送队列中查询指定号码对应的短信。
List findOutMessageByNumber(String number);
在发送队列中查询未进行分发的短信。
List findUndispatchedMessage();
2、:
,返回短信是否发送成功的报告,用于单发;number是待接收短信的号码列表, context是短信内容。发送完毕后短信立即从数据库中自动删除,不再保留。
void sendMessage(String number, String context);
,功能和上述类似,用于发;numbers是待接收短信的号码列表。
void sendMessages(List numbers, String context);
,功能和上述类似,用于单发,validityPeriod是短信在数据库中要保留的有效期,从将短信分发出去时算起,默认是10天;有效期后,短信自动从数据库中删除。
void sendMessage(String number, String context, int validityPeriod);
,功能和上述类似,用于发;numbers是待接收短信的号码列表。
void sendMessages(List numbers, String context, int validityPeriod);
设置定时,可以在timeToSend指定的日期时间。
void sendMessage(String number, String context, Date timeToSend);
设置定时,功能和上述类似,numbers是待接收短信的号码列表。
void sendMessages(List numbers, String context, Date timeToSend);
设置定时,功能和上述类似,v
alidityPeriod是短信在数据库中保留的有效期。
void sendMessage(String number, String context, Date timeToSend, int validityPeriod);
设置定时,功能和上述类似,numbers是待接收短信的号码列表。
void sendMessages(List numbers, String context, Date timeToSend, int validityPeriod);
3、删除短信:
删除某条短信,可能是收到的也可能是发送的,用于手动删除。
void deleteMessage(Sms sm);
删除某个时间段内的所有短信,startDate是起始时间,endDate是结束时间,返回短信是否成功删除的报告。
boolean deleteMessagesByTime(Date startDate, Date endDate);
在接收队列中删除某个时间段内的所有短信。
boolean deleteInMessagesByTime(Date startDate, Date endDate);
在发送队列中删除某个时间段内的所有短信。
boolean deleteOutMessagesByTime(Date startDate, Date endDate);
4、关闭服务:
结束所有线程,关闭短信平台服务
void terminal();
二、l--XML文件中的属性:
1、driverClassName:设置数据库链接驱动程序的名称,如"sql.jdbc.Driver";
2、url:设置MySQL数据库的连接路径,如"jdbc:mysql://localhost/jsms";
3、username:设置数据库的用户名,如"root";
4、password:设置数据库的使用密码,如"nothing";
5、portID:设置短信设备使用的端口号,如"COM3"
6、baud:设置短信设备与PC之间传送数据的波特率,如"115200"
三、短信实体类图:
delete in四、数据库安装向导:
使用Navicat创建一个名为jsms的MySQL数据库,选择数据库默认字符集为utf-8,然后使用console载入
短信平台API目录下的文件jsms.sql运行即可。数据库中会有两张表in_sms和out_sms,分别用于存储收到的短信和发送的短信。
五、短信平台API资源使用步骤:
如下所示是短信平台API工具包的资源目录图:
1、 将rxtxSerial.dll拷贝到您的项目根目录下(MyEclipse);如果您使用的是Eclipse,则务必要将该文件拷贝到您的项目所使用的JRE的Bin目录下;
2、 将lib目录下的所有jar包附加到您的项目Build-Path中,如果项目中已经存在功能相似的包,可以不加。您也可以先把lib目录下的所有文件先拷贝到您的项目自定义类库中,再附加到编译环境中;
3、 将src目录下的文件l、l、l复制到您的项目src目录下。并且根据您项目需要和开发环境、设备参数、数据库路径、数据表名等具体要求进行配置;
4、 l文件中的数据源Bean:
<bean id="sessionFactory"
class="hibernate3.LocalSessionFactoryBean"
destroy-method="close">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>InSm
l</value> //指明该文件在项目中的存放路径
<value>l</value> //指明该文件在项目中的存放路径
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">
false
</prop>
</props>
</property>
</bean>
5、 l文件中的数据表映射类:
<class name="dao.InSms" table="in_sms" catalog="jsms"> //指明表in_sms的数据库名
6、 l文件中的数据表映射类:
<class name="dao.OutSms" table="out_sms" catalog="jsms"> //指明表out_sms的数据库名
7、 参照src目录下的文件jsmtest.java中的代码编写您的项目短信模块;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import dao.*;
import JSMServer.*;
import org.jsmsengine.*;
import thread.*;
import t.ApplicationContext;
import t.support.ClassPathXmlApplicationContext;
public class jsmtest {
public static void main(String[] args) {
// 以下几行是项目程序文件中必须的!
ApplicationContext ctx = new ClassPathXmlApplicationContext("l");
SMServer caasms = (Bean("CAASMServer");
//caasms是服务控制台,使用前必须先初始化才能正常启动
caasms.initialization();
// 以下是您编写的短信模块代码
/**
* @用户自定义程序代码
*/
}
}
六、常见问题处理方法:
1、如何判断设备已连接PC?
最简单的办法是利用系统自带的超级终端。当然,您首先得保证设备可用,接口驱动工作正常,从而能够在您的设备管理器中识别该设备并读出其设备号。建立超级终端连接时,您应该选择能够使设备正常工作的端口号和波特率。如果设备连接上PC,您键入的每条正确的AT指令都会得到设备响应。
2、无法识别并打开串口怎么办?
检查您的项目中是否已经引入了通用串口驱动包RXTXcomm.jar和rxtxSerial.dll的支持,这两个文件缺一不可。如果不是这个问题,检查您的jre是否正确。该短信平台最好能够工作在JDK1.5以上的环境,并且有且只有一个JRE。多个JDK运行环境可能会相互冲突。
3、数据库无法连接怎么办?
首先检查您的l、l、l文件中关于数据库的一些参数是否都已设置正确。如果不是这个问题,检查您是否把数据库驱动包mysql-connector-java-5.0.7-bin.jar附加到您的编译路径去了。当然,您也可以使用比该驱动包更高的版本来实现与MySQL数据库的连接。
4、 设
备端口被占用,或者出现Framing Error等错误怎么办?
这可能是设备响应滞后,或者被您之前的测试程序线程占用而没有释放资源引起的。您可以尝试着重启您的项目,或者拔出USB接口再接回去即可。
5、 发送出去的短信乱码,或者接收到的短信存入数据库后出现乱码怎么办?
这跟您的MySQL数据库默认字符集有关。重新配置您的MySQL数据库管理器,选择默认的字符集为utf-8而不是latin1,再重启您的数据库服务即可。另外,请保证您在创建数据库时导入的sql文件里面的两张表的"DEFAULT CHARSET=gbk",而数据库字符集是utf8或者gbk。
如果仍有特殊问题,欢迎加QQ540877634(Nothing)或者435833292(Silgon)进行交流,大家共同解决。谢谢!
??
??
??
??
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论