我是GSM AT Commands的新手,并且我正在使用带有Modem Nodejs Module的ZTE MF190S USB 3G USB调制解调器,并且还尝试了MS Hyperterminal。
我面临的问题是,当我从Whatsapp使用AT+CMGL="ALL"
接收短信时(例如),我进入发件人号码字段81084326797126204
,该号码是无效的电话号码,应改为“ Whatsapp”尽管制造商的软件正常显示了Whatsapp的消息。
注意:我尝试将其解码为十六进制字符串,但未完成。
> AT+CSCS="GSM"
> AT+CPMS="ME"
> AT+CMGL="ALL"
//Result
+CMGL: 0,"REC UNREAD","81084326797126204",,"20/05/30,14:53:55+08"
FEFF000000000000000000000000000000000000020
如本link
中所述+ CMGL:索引,消息状态,地址,[地址文本],[service_center_time_stamp] [,地址类型,sms_message_body_length] sms_message_body [+ CMGL: ...]
地址字段
+ CMGL AT命令的信息响应的第三个字段, 地址,是一个字符串,其中包含存储在其中的地址/电话号码 SMS消息头。如果读取的SMS消息是传入的SMS 消息,地址字段包含原始发件人地址。如果短信 读取的消息是外发SMS消息,地址字段包含 收件人地址。通常,地址字段值为电话 使用典型的ISDN /电话编号计划格式化的号码 (ITU E.164 / E.163)。例如,“ + 85291234567”。
address_text字段
+ CMGL AT命令的信息响应的第四个字段, address_text,是一个包含与地址关联的文本的字符串 在电话簿中。例如,如果文本“ Alice”与 电话簿中的电话号码“ 91234567”,address_text将为 “爱丽丝”。 AT命令+ CSCS(命令名称以文本形式:选择TE 字符集)可用于指定要显示的字符集 address_text。请注意,address_text是可选字段。一些 GSM / GPRS调制解调器和移动电话(例如:大多数诺基亚产品, 包括我的诺基亚6021)将此字段留空。
如何确定消息来自Whatsapp或任何其他服务提供商的名称?
答案 0 :(得分:0)
你写了
+ CMGL AT命令的信息响应的第四个字段,address_text,是一个字符串,其中包含与电话簿中的地址相关联的文本
如果您的设备曾经识别过该号码,则该号码可能在该设备的电话簿中,并且可能已被删除。
您可以尝试使用 AT+CPBW
命令再次存储数字:
AT + CPBW = [
] [, [, [, ]]] 其中
- 索引是电话簿中的记录位置。如果省略,记录将存储在第一个空闲位置
- 数字是要以字符串格式存储在电话簿中的数字
- 类型是数字类型;国家计划为129,国际计划为145
- 文本是电话簿中条目的名称
所以,在您的情况下:
AT+CPBW=,"81084326797126204",129,"WhatsApp"
在它之后,您应该看到名称出现在+CGML
列表中。在PB写入之后,您可能需要重新启动设备才能看到更改的效果。
更改是在当前电话簿中完成的,通常是SIM卡。可以使用命令AT+CPBS?
进行查询(它也可以对其进行更改;有关更多说明,请参见指南)。
我建议您浏览每本电话簿的内容,以便发现任何设备(和SIM)的默认内容。读取电话簿条目的命令是** {AT+CPBR**
。提供
AT+CPBR=1,N
显示了1到N之间的所有索引。如果将N设置为电话簿的大小,则可以列出其中的所有条目。