【问题标题】:How to send and receive SMS in java?如何在java中发送和接收短信?
【发布时间】:2013-06-07 14:09:20
【问题描述】:

我希望我的 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;
}
}

【问题讨论】:

  • 对代码块使用一致且符合逻辑的缩进。代码的缩进是为了帮助大家理解程序流程!
  • @AndrewThompson 这不是我的代码,正如我所说的,我只是在搜索时找到的
  • 您显然在错误的地方搜索。避免使用roseindia(或任何其他无法显示缩进代码的网站),就像您可以避免瘟疫一样......
  • 嗯,你有什么推荐给我吗?
  • 不,除了我已经放入 cmets 之外的任何东西。

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


【解决方案1】:

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

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

您提供的代码示例似乎尝试使用连接到本地串行端口的网关,但由于您没有这样的硬件设备,它不适合您。

【讨论】:

  • 那么,使用服务怎么样?你有什么推荐给我的?
  • 我没有使用在线服务发送 SMS 消息的经验。但是,如果您想使用我之前使用过 Moxa OnCell 的硬件网关,那么上手非常简单..
  • 但它是一个通用应用程序,我不能使用特殊硬件来完成那个阶段
  • 我并不是说你不应该使用在线服务,只是我自己没有使用过,所以我无法就哪个最好或最容易工作提出任何建议与,或定价明智..
  • 使用“USB 调制解调器”作为网关完成这项工作
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    “我也发现了SMSLib代码但是看不懂”-

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

    【讨论】:

    • 正如@MikyDinescu 已经回答的那样,代码示例肯定是使用硬件,可能是连接到具有9600 波特率的COM4 端口的华为E220 调制解调器。
    • 我之前发现过那个网站,但我认为这是一个笼统的谈话,我想从理论上和编程上学习一些东西
    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 2017-06-23
    相关资源
    最近更新 更多