SMSLib 发送消息,使用多个网关
SMSLib sending message, using multiple gateways
我正在使用 SMSLib 发送和接收消息。一切正常,但现在我想插入多个调制解调器。我想通过我所有的调制解调器接收消息并用它们做一些事情(我想我可以做到)。我也想发送消息,但只能通过 selected 调制解调器(这是我的问题)。在我拥有一个网关之前,我是这样发送的:
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
Service.getInstance().sendMessage(msg);
但是现在,我如何才能 select 我想用来发送消息的一个特定网关?
我发现一个题目有点像我的问题,但不完全是:
Use multiple gateway with SMSLIB
每个调制解调器都是 SMSLib 中的一个 AGatway 对象,因此您需要先对其进行设置:
SerialModemGateway modemGateway = new SerialModemGateway("FirstGateway", "/dev/ttyM0", "9600", "WAVECOM", "Fastrack");
Service.getInstance().addGateway(modemGateway);
其中 FirstGateway 是调制解调器的 ID,在 SMSLib 中称为 gatewayId。您现在要做的就是将您的 gatewayId 传递给 sendMessage 方法或 queueMessage(如果您异步发送消息):
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
Service.getInstance().sendMessage(msg, "FirstGateway");
或:
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
msg.setGatewayId("FirstGateway");
Service.getInstance().sendMessage(msg);
我没有注意到有这样一个方法 sendMessage() 将 gatewayId 作为第二个参数。如果是这样,那就完美了。我明天会检查一下,你确定吗?我正在使用 SmsLib 3.x
编辑:
正如你所说。我只是将 gatewayId 作为第二个参数并且它正在工作。另一个选项是您可以设置创建的 OutboundMessage 的 gatewayId:
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
msg.setGatewayId("FirstGateway");
Service.getInstance().sendMessage(msg);
太简单了..谢谢!
我不会对多个网关使用 sendMessage 方法,请使用 queueMessage 它将您的消息添加到 SMSLib 服务队列并异步发送。
此外,如果您开始申请:
-Dsmslib.queuedir=yourQueuedMessagesDirectory
您将能够将所有未发送的消息存储在硬盘上,并提供 SMSLib 服务设施以在应用程序重启后发送它们。
我正在使用 SMSLib 发送和接收消息。一切正常,但现在我想插入多个调制解调器。我想通过我所有的调制解调器接收消息并用它们做一些事情(我想我可以做到)。我也想发送消息,但只能通过 selected 调制解调器(这是我的问题)。在我拥有一个网关之前,我是这样发送的:
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
Service.getInstance().sendMessage(msg);
但是现在,我如何才能 select 我想用来发送消息的一个特定网关?
我发现一个题目有点像我的问题,但不完全是: Use multiple gateway with SMSLIB
每个调制解调器都是 SMSLib 中的一个 AGatway 对象,因此您需要先对其进行设置:
SerialModemGateway modemGateway = new SerialModemGateway("FirstGateway", "/dev/ttyM0", "9600", "WAVECOM", "Fastrack");
Service.getInstance().addGateway(modemGateway);
其中 FirstGateway 是调制解调器的 ID,在 SMSLib 中称为 gatewayId。您现在要做的就是将您的 gatewayId 传递给 sendMessage 方法或 queueMessage(如果您异步发送消息):
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
Service.getInstance().sendMessage(msg, "FirstGateway");
或:
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
msg.setGatewayId("FirstGateway");
Service.getInstance().sendMessage(msg);
我没有注意到有这样一个方法 sendMessage() 将 gatewayId 作为第二个参数。如果是这样,那就完美了。我明天会检查一下,你确定吗?我正在使用 SmsLib 3.x
编辑:
正如你所说。我只是将 gatewayId 作为第二个参数并且它正在工作。另一个选项是您可以设置创建的 OutboundMessage 的 gatewayId:
OutboundMessage msg = new OutboundMessage(recipientNumber, text);
msg.setGatewayId("FirstGateway");
Service.getInstance().sendMessage(msg);
太简单了..谢谢!
我不会对多个网关使用 sendMessage 方法,请使用 queueMessage 它将您的消息添加到 SMSLib 服务队列并异步发送。
此外,如果您开始申请:
-Dsmslib.queuedir=yourQueuedMessagesDirectory
您将能够将所有未发送的消息存储在硬盘上,并提供 SMSLib 服务设施以在应用程序重启后发送它们。