Как отправлять и получать SMS в Java?

Я хочу, чтобы мое Java-приложение могло отправлять и получать SMS без использования каких-либо дополнительных аппаратных устройств, и оно должно быть бесплатным.

Я сделал свой поиск, но все, что я нашел, это заголовки, я нашел что-то вроде SMSLib, но, с другой стороны, я не нашел учебников или книг, чтобы изучить это.

Я также нашел этот код SMSLib, но не понял:

Отправить сообщение/SMS-код

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);
}
}

Чтение кодов сообщений/SMS

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;
}
}

person Muhammed Refaat    schedule 11.06.2013    source источник
comment
Используйте последовательный и логичный отступ для блоков кода. Отступ кода предназначен для того, чтобы помочь людям понять ход программы!   -  person Andrew Thompson    schedule 11.06.2013
comment
@AndrewThompson, это не мой код, как я уже сказал, я только что нашел его при поиске   -  person Muhammed Refaat    schedule 11.06.2013
comment
Вы явно ищете не в тех местах. Избегайте roseindia (или любого другого сайта, который не может отображать код с отступом), как вы можете избежать чумы.   -  person Andrew Thompson    schedule 11.06.2013
comment
ну так ты мне что-нибудь порекомендуешь?   -  person Muhammed Refaat    schedule 12.06.2013
comment
Нет, на самом деле ничего, кроме того, что я уже написал в комментариях.   -  person Andrew Thompson    schedule 12.06.2013
comment
хорошо, спасибо за помощь   -  person Muhammed Refaat    schedule 12.06.2013


Ответы (3)


Для отправки SMS-сообщений у вас есть два варианта: либо использовать модем-шлюз, либо использовать массовый сервис с онлайн-API.

SMSLib — это всего лишь библиотека, которая упрощает взаимодействие со шлюзом (аппаратным устройством) или поставщиком услуг массовой рассылки SMS. В любом случае одной библиотеки недостаточно.

Предоставленный вами пример кода пытается использовать шлюз, подключенный к локальному последовательному порту, но, поскольку у вас нет такого аппаратного устройства, он не будет работать для вас.

person Mike Dinescu    schedule 11.06.2013
comment
Итак, как насчет использования сервиса? что вы рекомендуете для меня в этом? - person Muhammed Refaat; 11.06.2013
comment
У меня нет опыта работы с онлайн-сервисами для отправки смс-сообщений. Но если вы хотите поиграть с аппаратным шлюзом, я использовал Moxa OnCell раньше, и начать работу с ним довольно просто. - person Mike Dinescu; 11.06.2013
comment
но это универсальное приложение, и я не могу использовать специальное оборудование для этого этапа. - person Muhammed Refaat; 12.06.2013
comment
Я не говорю, что вы не должны использовать онлайн-сервис, просто я сам им не пользовался, и поэтому я не могу дать никаких рекомендаций относительно того, с чем лучше или проще всего работать, или с точки зрения ценообразования. - person Mike Dinescu; 12.06.2013
comment
использование USB-модема в качестве шлюза делает работу - person Muhammed Refaat; 14.05.2014

Один из способов — использовать SMS-шлюз и отправлять их как обычные электронные письма.

person David Jashi    schedule 11.06.2013