Как читать смс с сима в ключе с помощью JAVA
Я использую следующий код для отправки смс из ключа. Его отправка успешно. Теперь я хочу читать смс с SIM-карты или непрочитанные смс с донгла, чтобы любой мог мне сказать, как это читать
Ниже приведен код для отправки смс
import org.smslib.OutboundMessage;
import org.smslib.Service;
import org.smslib.modem.SerialModemGateway;
...
private String port = "COM4"; // Modem Port.
private int bitRate = 9600; // This is also optional. Leave as it is.
private String modemName = "ZTE"; // This is optional.
private String modemPin = "0000"; // Pin code if any have assigned to the modem.
private String SMSC = "+919822078000"; // Message Center Number ex. Mobitel
...
SerialModemGateway gateway = new SerialModemGateway("", port, 9600, "InterCEL", "");
Service.getInstance().addGateway(gateway);
Service.getInstance().startService();
// System.out.println("center number=" + gateway.getSmscNumber());
gateway.setSmscNumber(SMSC);
gateway.setOutbound(true);
OutboundMessage o = new OutboundMessage(number, str);
gateway.sendMessage(o);
Есть класс InboundMessage, который принимает три параметра sunch в качестве шлюза, MemoryIndexNumber, SimMemoryLocation, которые я не могу получить, поэтому он возвращает ноль
InboundMessage n=new InboundMessage()
gateway.readMessage(n);
Если есть какой-то другой способ прочитать смс с сим-ключа.
1 ответ
Чтобы прочитать сообщения, которые в данный момент находятся в памяти SIM-карты, вы можете просто сделать
ArrayList<InboundMessage> msgList = new ArrayList<InboundMessage>();
Service.getInstance().readMessages(msgList, InboundMessage.MessageClasses.ALL);
for (InboundMessage im : msgList) {
}
Но для обнаружения входящих сообщений в реальном времени вам необходимо реализовать org.smslib.IInboundMessageNotification.
Например
import org.smslib.AGateway;
import org.smslib.IInboundMessageNotification;
import org.smslib.InboundMessage;
import org.smslib.Message.MessageTypes;
public class SMSInNotification implements IInboundMessageNotification
{
public void process(AGateway gateway, MessageTypes msgType, InboundMessage msg)
{
switch (msgType)
{
case INBOUND:
System.out.println(">>> New Inbound message detected from " + "+" + msg.getOriginator() + " " + msg.getText());
break;
case STATUSREPORT:
break;
}
}
}
Затем запустите их до строки, которая запускает службу с помощью.startService()
gateway.setInbound(true);
Service.getInstance().setInboundMessageNotification(new SMSInNotification());
Вы можете прочитать больше в документации на github https://github.com/smslib/smslib-v3/tree/master/doc