`
thtwin
  • 浏览: 165020 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java操作手机发送短信

    博客分类:
  • J2SE
阅读更多
作者:曹祺
Blog: http://blogs.sun.com/greysh
Web: http://www.greysh.com
Email: Qi.Cao@Sun.com
本文链接:
http://developers.sun.com.cn/blog/functionalca/entry/java%E6%93%8D%E4%BD%9C%E6%89%8B%E6%9C%BA%E5%8F%91%E9%80%81%E7%9F%AD%E4%BF%A1
本文附件下载:
http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Sms_javacomm20-win32.zip
http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Sms_slf4j.zip
http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Sms_smslib-v3.4.2.zip
http://developers.sun.com.cn/blog/functionalca/resource/Greysh/FCA_Greysh_Sms_sms-source.zip

难度:入门

参考Uglytroll's Blog: http://uglytroll.ycool.com/post.3226216.html
SMSLIB官方:http://www.smslib.org/
企业短信预警系统,一般都包含很多外围硬件解决方案,例如CTI,duan信猫,远程射频,本教程采用SMSLIB操作索爱W810C发送短信作为预警系统

1.环境搭建
2.HelloWorld


1.环境搭建
SMSLIB有两种发送策略,如果是数量很少的,可以采用直接发送,即触发一个提交按钮后进行发送,如果是数据量很大,则采用服务器版,即

先把要发送的电话号码和内容存到数据库中,然后用一个监听器去不断的扫描数据库的发送队列,然后批量发送,本教程出于演示目的,故只

写出直接发送的示例,感兴趣的朋友可以去smslib官方查看smsserver发送模式

smslib底层调用的是win32com去发送AT指令,需要的jar包有smslib-3.4.2.jar(写此篇教程时最新的jar包),同时还需要win32com(本人采用

的windows xp系统)和slf4j,需要slf4j以下jar包
slf4j-api-1.5.6.jar
slf4j-jcl-1.5.6.jar
slf4j-jdk14-1.5.6.jar
slf4j-log4j12-1.5.6.jar
如果是windows系统需要Java Comm v2 is for Win32 systems
可以在http://smslib.googlecode.com/files/javacomm20-win32.zip
如果是其他系统,可以装Java Comm v3或者RxTx
把commm.jar放在JDK里面的JRE的LIB/EXT目录下和非JDK目录的JRE的LIB/EXT(虽然JDK里面自带JRE
,但是一般安装时候会默认在与JDK同级目录下安装另一个JRE,这个里面的lib/ext里面也要放)
然后把 javax.comm.properties 放在JDK里面的JRE的lib目录和非JDK目录的lib目录
最后把win32com.dll放在JDK里面的JRE的bin目录和非JDK目录的bin目录

目前支持的手机型号有
Billionton: PCMCIA PCGPRSQ-B.
EagleTec: GSM modems.
Fargo Maestro 20.
ITengo: 3000, WM1080A.
Janus: GSM864Q.
Nokia: 6070, 6100, 6210, 6310, 6310i, 6230, 6230i, 6681, 8250, 8310, 6610, 6800, 7210, 6810, 7250i, 6103, 6020, 3220, 6822,

5140, 5140i, 30 (terminal).
Multitech: Multimodem GPRS (SMSLib for Java can also drive the Multitech Multimodem via its IP port).
Sharp: GX30, GX32.
Siemens: MC35i, M35, M50, M65, C45, TC35i, C65, M55, TC65t.
SIMCOM Ltd: SIMCOM_SIM100S.
Sony Ericsson: K300i, SE K800i, K700i, K750i, SE W850i, W880i, GC89, Z550a, W800, W580i, W810, i320, GT48.
Ubinetics: GDC201.
Wavecom: M1206B, M1306B, WMOD2 Wismo, Fastrack Supreme 10, WISMOQCDMA CDMA.
Huawei: E220 (may require the forced setting of SMSC address), E230.
Motorola: V3.
Teltonika: ModemUSB.
Motorola: V3, L6.
Samsung: D520.
Samba: 55-SET GSM/GPRS USB modem.

2.HelloWorld
发短信的流程是创建一个org.smslib.Service,然后设定信猫网关,开启服务,发送即可
本例子做了一次循环发送,只要指定电话号码和短信内容即可

public class SendMessage {
public void doIt(String phone, String content) throws IOException,
   InterruptedException, SMSLibException {
  Service srv;
  OutboundMessage msg;
  srv = new Service();
  SerialModemGateway gateway = new SerialModemGateway("modem.com1",
    "COM9", 57600, "Sony Ericsson", "W810");//采用Sony Ericsson的W810c手机发送
  gateway.setInbound(true);
  gateway.setOutbound(true);
  gateway.setSimPin("0000");
  srv.addGateway(gateway);
  srv.startService();
  msg = new OutboundMessage(phone, content);
  srv.sendMessage(msg);
  long time = System.currentTimeMillis();
  while (System.currentTimeMillis() - time < 2) {}//暂停两秒再发送
  srv.stopService();
}

public static void main(String args[]) throws IOException,
   InterruptedException, SMSLibException {
  SendMessage app = new SendMessage();
  int i = 1;
  while (i < 4) {
   app.doIt("139********", "Hello Greysh");//139********改为你想发送的电话号码
   i++;
  }
}
}
分享到:
评论

相关推荐

    java发手机短信

    在Java编程环境中,发送手机短信是一项常见的任务,尤其在企业级应用、通知服务或验证码验证等场景中。这里,我们将深入探讨如何使用Java实现这个功能,主要关注代码实现和技术要点。 首先,Java发送手机短信通常...

    java 给手机发送短信

    根据提供的文件信息,本文将详细解释如何使用Java发送短信到手机以及进行相关的查询操作。文章首先会概述如何通过Java程序实现短信发送功能,并探讨其实现原理。随后将深入讨论示例代码中的具体方法,包括发送短信...

    java代码实现短信猫发短信

    Java代码实现短信猫发送短信是一项常见的通信应用,主要利用了串行通信技术。短信猫,又称GSM调制解调器,是一种硬件设备,通过USB或串口与计算机连接,可以实现短信的收发功能。在Java编程环境中,我们可以利用Java...

    java给手机发短信

    Java给手机发送短信的技术在移动通信领域非常常见,主要用于验证码验证、通知服务或者营销推广等场景。本篇文章将深入探讨如何使用Java实现这一功能,并提供一个基础的Web Service示例,帮助您的项目添加这一实用...

    java手机短信发送demo

    在Java开发中,发送手机短信是一项常见的需求,特别是在验证用户身份、提醒服务或者营销推广时。本示例将介绍如何利用阿里云短信服务API在Java环境中实现短信的发送功能。这是一个基于Maven构建的项目,因此我们需要...

    java发送手机短信验证码

    Java发送手机短信验证码是移动应用开发中的一个常见需求,用于用户身份验证,增强安全性。本文将详细介绍如何使用网易云信服务来实现这一功能,适合初学者进行学习。 首先,我们需要在网易云信官网上注册一个账号,...

    华为短信api的java源码

    - 发送短信到指定手机号,支持单发和群发。 - 接收来自用户的短信,比如验证码确认或用户反馈。 - 查询短信发送状态,如发送成功、失败或正在处理。 - 管理短信模板,方便重复使用的短信内容。 - 错误处理和重试机制...

    cmpp2.0短信网关发送短信代码(java)

    3. **发送短信**:利用CMPP_SUBMIT报文构造短信发送请求,包括短消息的内容、目标手机号码、短信类型、编码格式等信息,并通过TCP连接发送到网关。 4. **接收应答**:等待服务器返回CMPP_SUBMIT_RESP,这个响应包含...

    JAVA联通短信代码

    7. **批量发送**:对于大量用户的短信发送,可以使用批量操作来提高效率,减少网络往返时间。 8. **日志记录**:为了便于追踪和调试,需要记录发送短信的详细过程,包括请求参数、响应结果和可能的错误信息。 9. *...

    用java编写的手机免费短信

    标题中的“用java编写的手机免费短信”表明我们要讨论的是一个使用Java编程语言开发的应用程序,该程序允许用户通过手机发送免费短信,类似于知名的飞信服务。在移动通信领域,这样的应用通常涉及到移动网络和短信...

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

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

    java+飞信 免费发送短信

    通过调用相应的API,Java程序可以获取到用户的好友信息,包括好友的用户名、手机号等,这对于实现群发短信或者特定人群发送短信的功能非常有用。 6. **异常处理与错误重试** 在开发过程中,必须考虑到网络不稳定、...

    java 发短信 android

    在Android平台上,使用Java语言发送短信是一项常见的任务,尤其对于开发者来说,理解这一过程是构建交互式应用程序的关键。...通过阅读提供的压缩包文件“发短信 -android”,可以进一步了解具体实现细节和示例代码。

    java实现调用短信接口发送短信demo

    在Java编程领域,调用短信接口发送短信是一项常见的任务,特别是在验证码验证、通知服务和营销活动中。本示例将详细讲解如何使用阿里大于(现更名为阿里云通信)提供的短信服务API来实现这一功能。阿里大于是阿里...

    java实现给手机发送验证码

    在本场景中,我们将探讨如何使用Java编程语言来实现手机验证码的发送,以及涉及的相关知识点。 首先,我们需要理解手机验证码的基本原理。验证码通常是一串随机生成的数字或字母组合,通过短信的方式发送到用户的...

    java短信验证(前后台全部)

    3. 发送短信:后端通过第三方短信服务提供商的API接口,将验证码发送到指定的手机号码。这通常需要预先配置好API密钥和服务提供商的URL。 4. 返回响应:后端发送短信成功后,返回一个状态码或消息给前端,告知发送...

    java串口发送短信.zip

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

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

    本实例将详细讲解如何使用Java进行串口通信,并提供一个Java手机串口短信发送的代码示例。 首先,理解串口通信的基本概念是必要的。串口,也称为串行接口,是一种通过串行数据传输的通信协议。它一次只发送或接收一...

    java发送手机短信例子及jar包

    在Java编程中,发送手机短信是一项常见的需求,例如在验证码验证、通知服务或者营销活动中。这个例子和相关的jar包提供了一种实现方式。下面将详细解释如何使用Java进行手机短信发送,以及涉及到的关键技术和库。 ...

    联通短信网关JAVA接口

    1. **短信提交**:通过这个接口,应用可以向网关发送短信请求,包括短信内容、目标手机号码等信息。 2. **短信状态报告**:网关在短信发送后,会返回一个状态报告,告知短信是否成功送达或者遇到了什么问题。 3. **...

Global site tag (gtag.js) - Google Analytics