Если вы читаете SMS-сообщения с SIM-карты, сначала вы должны выполнить AT + CMGL, чтобы узнать индексы любых сохраненных SMS-сообщений (SMS-ПОСТАВЩИКОВ). Затем вам нужно использовать AT + CMGR, чтобы прочитать конкретное SMS. Вы работаете в режиме PDU или текстовом режиме?
Просто как примечание. Почему вы отправляете команды ATZ и ATH0? Это команды, связанные с профилем и вызовом.
Чтобы просмотреть все статусы сообщений, разрешенные для вашего модема:
AT+CGML=?
Типичный ответ будет:
+CMGL: ("REC UNREAD","REC READ","STO UNSENT","STO SENT","ALL")
Итак, чтобы посмотреть все сообщения на вашей SIM-карте:
AT+CGML="ALL"
Чтобы просмотреть все непрочитанные (новые) сообщения на вашей SIM-карте:
AT+CGML="REC UNREAD"
Существует еще один вариант, в котором вы можете запретить сохранение SMS-сообщений на вашей SIM-карте. Это контролируется с помощью команды AT + CNMI для настройки нежелательных сообщений, которые должны быть включены. Затем, когда получено SMS, вы получите асинхронное сообщение + CMT. Если вы хотите узнать больше об этом, просто дайте мне знать.
Есть несколько преимуществ использования незапрошенного подхода. Главным из них является то, что вам не нужно управлять памятью вашей SIM-карты (нет риска ее переполнения). Кроме того, при большом количестве SMS ваша SIM-карта может стать непригодной для использования.