如何在java中发送和接收短信?

时间:2013-06-11 16:16:38

标签: java java-me sms sms-gateway smslib

我希望我的Java应用程序在不使用任何其他硬件设备的情况下发送和接收 SMS ,并且必须是免费的。

我进行了搜索,但我找到的只是标题,我找到了像 SMSLib 这样的东西,但另一方面我没有找到教程或书籍来学习。

我还发现 SMSLib 代码,但不明白:

发送消息/短信代码

package SMSEngine;
import org.smslib.*;
class SendMessage
{
public static void sendMessage(String number, String message)
{ 
CService srv = new CService("COM4",9600,"huawei","E220");
try
{
srv.setSimPin("0000");
srv.setSimPin2("0000");
srv.setSmscNumber("");
srv.connect();
COutgoingMessage msg = new COutgoingMessage(number, message); 
msg.setMessageEncoding(CMessage.MessageEncoding.Enc7Bit);
msg.setStatusReport(true);
msg.setValidityPeriod(8);
srv.sendMessage(msg);
srv.disconnect();
}
catch (Exception e)
{
e.printStackTrace();
}
System.exit(0);
}
}

阅读留言/短信代码

package SMSEngine;
import org.smslib.*;
import java.util.*;
class ReadMessages
{
static CService srv;
public static LinkedList receiveMessage()
{
LinkedList msgList = new LinkedList();
/*
To Check COM port Go in following path in Windows7
Control Panel\Hardware and Sound\Bluetooth and Local COM

*/
srv = new CService("COM4",9600,"huawei","E220");//"COM1", 57600, "Nokia", ""
try
{
srv.setSimPin("0000");
srv.setSimPin2("0000");
srv.connect();
srv.readMessages(msgList, CIncomingMessage.MessageClass.Unread);
srv.disconnect();
return msgList;
}
catch (Exception e)
{
e.printStackTrace();
}
System.exit(0);
return msgList;
}
}

3 个答案:

答案 0 :(得分:5)

要发送短信,您有两种选择:使用网关调制解调器,或使用带有在线API的批量服务。

SMSLib只是一个使更容易与网关(硬件设备)或批量SMS提供程序连接的库。无论哪种方式,图书馆本身是不够的。

您提供的代码示例似乎尝试使用连接到本地串行端口的网关,但由于您没有这样的硬件设备,因此无法为您工作。

答案 1 :(得分:2)

一种方法是使用SMS gateway并像普通电子邮件一样发送它们。

答案 2 :(得分:1)

  

“我还发现 SMSLib 代码但不明白” -

假设您了解java /面向对象的编程,请阅读 smslib 上的在线教程以了解基础知识。也许你可以从这个http://smslib.org/doc/smslib/quickstart/

开始