1

我想出于某种目的在应用程序中使用 GSM 调制解调器。

我想要的是处理已发送短信列表的短信发送报告。

GSM 调制解调器收件箱和发件箱仅限 15 件。每次我阅读收件箱时,gsm 调制解调器都会返回一个列表并清除该列表。

如何检查已从 GSM 调制解调器收件箱中删除的短信的发送状态?

我需要一些独特的东西,使我能够识别每条消息。

4

1 回答 1

4

每次我阅读收件箱时,gsm 调制解调器都会返回一个列表并清除该列表。

存储在调制解调器内存中的消息在您阅读后不会被删除。您只需使用命令读取消息,at+cmgl={message id in storage}然后使用at+cmgd={message id in storage}命令将其删除(或不使用,如您所愿。您可以使用at+cmgd=1,4命令清除所有调制解调器的存储)。

回到问题:发送短信后,你会得到调制解调器的回复,像这样:+cmgs: {sms id, 0 to 255} OK。万一,如果服务中心已经成功发送短信,调制解调器将返回此响应:+cds: {some id which does not matter} {PDU status report}。您只需解码此 PDU 即可获得状态报告、原始 SMS 的 id 和其他有用数据。如果发送短信的 ID 和状态报告中的 ID 相同,则您的状态报告与您的消息完全一致。请注意,如果您在收到传递报告之前从调制解调器的存储中删除消息,您将获得包含所有常规信息的报告,但传递状态很可能是 71 而不是 0。

于 2013-12-17T13:09:57.470 回答