`

使用jsmsengine开发短信息发送软件

阅读更多

前些日子,做了一个短信事务平台的软件,现在把在开发心得写出来,与大家共享。jSMSEngine开源包可以利用GSM Modem或带有红外线、蓝牙、数据线的手机与电脑连通,收发短信。有了此功能,我们就可以做很多手机做不了的事情。比如保存重要的短信、短信群发、共享收发短信等。

话不多说,先到http://jsmsengine.sourceforge.net/下载开源包,笔者试过几个版本,感觉1_2_6-B1版本比较稳定。包括commjSMSEngine。将jsmsengine_1_2_6-B1解压,可以看到相关的jar包、源码、文档、例子以及一个简单的SMS服务器程序。

先来配置开发环境环境。

1.    复制comm.jarjSMSEngine.jar(JDKDIR)\lib\ext文件夹下,或把开发包添加到开发环境中。

2.    复制javax.comm.properties(JDKDIR)\jre\lib目录下。

3.    复制win32com.dll(JDKDIR)\jre\bin目录下。(以上红色这里很重要)

examples文件夹下,有个SendMessage.java的原文件,这是他自带发短信的例子,我们就从这里出发。

int status;//记录连接状态

CService srv = new CService("com1", 9600);//创建jSMSEngine服务,第一个参数是连接端口,第二个参数是连接速率

srv.initialize();//初始化jSMSEngine服务

srv.setCacheDir(".\\");//设备jSMSEngine服务的缓存

status = srv.connect();//连接设备 这设备可以是GSM Modem、带有红外线、蓝牙、数据线的手机

if (status == CService.ERR_OK){//如果连通状态OK

srv.setOperationMode(CService.MODE_PDU);//设置模式

srv.setSmscNumber("");

//System.out.println()方法是输入连接状态信息

COutgoingMessage msg = new COutgoingMessage("13500000000", "test");//创建发短信实例,第一个参数是接收的手机号码,第二个参数是短信内容。

if(srv.sendMessage(msg) == CService.ERR_OK)

System.out.println("Message Sent!");//如果发送成功,就输入Message Sent!

else

System.out.println("Message Failed!");//否则输入Message Failed!

srv.disconnect();//断开连接

}

else{

System.out.println("Connection to mobile failed, error: " + status);//如果连接状态失败,则输入Connection to mobile failed, error:和失败的参数,这就是常见的-11,或-22等信息

}

JCreator编译该文件,如果程序出现如下错误:

Error loading win32com: java.lang.UnsatisfiedLinkError: no win32com in java.library.path

Connection to mobile failed, error: -11

根据错误提示,引用的一个javawindowns下访问串口的必备动态链接库——win32com.dll,找到这个东东后把它拷贝到JDK安装目录下的bin文件夹下。

以上是发短信,examples文件夹下,还有个ReadMessages.java文件,是用来收短信的。与发短信相对比,只是以下语句不同,其它都是一样的。

if (srv.readMessages(msgList, CIncomingMessage.CLASS_ALL) ==CService. ERR_OK){//如连接OK,读取设置内的短信信息也OK

for (int i = 0; i < msgList.size(); i ++){

CIncomingMessage msg = (CIncomingMessage) msgList.get(i);//读取短信,并保存在msg对象里

System.out.println(msg);

}

}

msg对象里,还有几个方法,getOriginator()获取电话号码,getDate()获取发短信时间, getText()获取短信内容。

我们主要用的的就是发短信,收短信。只是这开发包是集成了超级终端的AT指令,只支持收发文本,不支持彩信。只要把这两个搞定啦,利用短信做什么,就由我们定啦,比如在程序里,解释短信内容启动或关闭某一程序,收取系统监控信息等。我们小组就利用这个开发包,开发了短信事务平台,功能简介:一台服务器连上GSM ModemN个客户端用TCP协议连上服务器,客户可以单/群收发短信,添加事务到数据库,按事务设定时间,自动发短信到客户手机,提示事务,还可以通过手机远程管理事务。

jSMSEngine1.2.6开发包,笔者在Nokia、三星、GSM ModemJDK 1.5JDK 1.5.0 ,在Eclipse5测试通过。

分享到:
评论
3 楼 hanyanwei 2011-09-18  
作者您好:
     首选多谢您的博文, 我也装了jsmsengine做了测试。
     结果呢, 发短信是没有问题了。非常棒。
     但是, 收短信收不着。 我用的是Nokia 5230  收短信的时候 我跟踪了下代码,
    sendMessage("AT+CMGL=4\r");   等收短信系列的指令的时候,响应返回的都是Error。    Cservice默认的都是pdu模式吧。  应该没错。  能不能帮我分析下 是怎么回事呢 ??
2 楼 kaig 2009-06-07  
晕 !你这是原创吗?我在http://hi.baidu.com/lzytest/blog/item/b9129a22db6979f3d7cae2cc.html/cmtid/21ba533d0523b7eb3d6d979e找到了一篇一样的!
1 楼 kaig 2009-06-07  
你提供的那个压缩文件里怎么找不到comm.jar,win32com.dll?能不有提供一个下载地址啊

相关推荐

    jSMSEngine

    通过使用jSMSEngine,开发者能够轻松地集成短信发送功能到他们的应用程序中,以支持客户服务、通知、验证等业务场景。 jSMSEngine的核心特性包括: 1. **多协议支持**:jSMSEngine支持多种短信网关协议,如HTTP、...

    发送短信的jsmsengine开源包

    3. **消息队列**:为了处理大量并发的短信请求,JSMSEngine 实现了消息队列机制,可以有效地缓冲和管理待发送的消息,确保系统的稳定性和高效性。 4. **日志记录与错误处理**:JSMSEngine 支持详细的日志记录,便于...

    jsmsengine_1_2_7.zip

    综合以上信息,jSMSEngine是一个用Java编写的短信服务引擎,提供发送和接收短信的能力,并带有丰富的示例和文档,适合开发者进行集成和二次开发。其许可证、构建脚本和示例代码使得它在遵循规定的情况下易于部署和...

    jSMSEngine_2_0_4.zip

    3. **LICENSE.txt**:此文件包含了jSMSEngine的许可协议,定义了软件的使用、分发和修改规则。了解这个协议对于确保合法合规地使用该库至关重要,尤其是对于商业项目而言。 4. **misc**:这个目录可能包含了各种...

    jsmsengine_1_2_5.zip

    开发者可以通过导入这个JAR文件在自己的Java应用中使用jSMSEngine的功能,如发送和接收短信、管理短信服务提供商的连接等。 3. **LICENSE.txt**:文件包含了软件的许可协议,定义了用户可以如何使用、修改和分发该...

    jSMSEngine.jar

    **使用jSMSEngine发送短信息**,首先需要理解其核心概念和组件。通常,jSMSEngine会包含以下部分: 1. **SMS Provider**: 这是与短信网关进行交互的接口,用于发送和接收短信。开发者需要配置提供商的相关参数,如...

    jsmsengine_1_2_4.zip

    "j"代表Java,"SMS"代表短消息服务,"Engine"则意味着它是处理和发送短信的核心模块。 2. **版本1.2.4**: 这是软件的特定版本,表明在先前版本的基础上进行了改进和更新,可能包括错误修复、性能优化或者增加了新的...

    jSMSEngine_2_0_6-B3.zip

    这个引擎是一个专门用于处理和发送SMS(短消息服务)的开源工具,适用于开发人员在Java应用程序中集成短信功能。下面我们将详细探讨jSMSEngine的核心特性和应用。 1. **jSMSEngine.jar**: 这是jSMSEngine的主要库...

    jsmsengine_1_2_8.zip

    4. **LICENSE.txt**: 这个文件通常包含了软件的授权协议信息,详细说明了用户可以如何使用、分发和修改软件。对于jsmsengine,这可能是一个开源许可证,比如Apache 2.0或MIT,这意味着它鼓励二次开发和分享。 5. **...

    jSMSEngine_2_0_9

    3. **LICENSE.txt**:此文件包含jSMSEngine的许可信息,规定了使用、修改和分发该软件的条款和条件。理解许可证条款对于合法合规地使用开源软件至关重要。 4. **examples**:这是一个目录,可能包含使用jSMSEngine...

    jsmsengine_1_2_2.zip

    8. **jSMSServer**:这可能是一个服务器端的组件,与jSMSEngine一起工作,用于处理短信服务的后台任务,如连接到短信网关、处理发送请求、存储消息记录等。 jSMSEngine的核心功能可能包括: - **短信发送和接收**...

    jSMSEngine_2_0_6-B1.zip

    `LICENSE.txt`文件提供了软件的许可协议信息,详细说明了jSMSEngine的使用权限、限制以及分发条件。用户在使用前必须仔细阅读并遵循这些条款,以确保合法合规地使用该软件。 `org`目录很可能包含了jSMSEngine的源...

    jsmsengine_1_2_1.zip

    `examples` 文件夹包含了一些示例代码,展示了如何使用jSMSEngine进行短信发送、接收和其他操作。这对于初学者来说非常有用,因为他们可以参考这些例子快速了解如何正确地集成和使用这个库。 `misc` 文件夹可能包含...

    jSMSEngine_2_0_5.zip

    - **LICENSE.txt**:这是一个重要的文件,其中包含了jSMSEngine的许可协议,规定了用户可以如何使用、修改和分发这个软件。遵循这些条款对合法使用软件至关重要。 5. **文档**: - **docs** 目录:这个目录很可能...

    jSMSEngine_2_0_4

    例如,企业可以利用它构建内部通知系统,即时发送重要消息给员工;开发者可以将其用于开发验证码发送服务,提升网站的安全性;甚至,它还可以用于创建社交应用,实现用户之间的信息交流。 在文件列表中,"代码中国....

    jsmsengine_1_2_6-B1.zip

    - README文件提供了关于jsmsengine的基本信息、安装指南、使用示例和可能的注意事项。它是开发者开始使用这个库时的重要参考文档。 6. **org 文件夹**: - 在Java项目中,"org"通常是包名的前缀,代表组织或项目...

    java发送短信的控件

    6. **技术宝典-使用jsmsengine发送短信息(SMS)使用心得!(原创).htm**:这是一份详细的使用指南,可能包含了作者在使用jSMSEngine发送短信过程中的经验分享和常见问题解决方法,对于初学者来说是非常宝贵的资源。...

Global site tag (gtag.js) - Google Analytics