gpt4 book ai didi

python - 如何使用 AT 命令发送/接收短信?

转载 作者:太空狗 更新时间:2023-10-29 18:28:26 32 4
gpt4 key购买 nike

谁能帮我在 Python 中使用 AT 命令发送和接收短信?

以防万一,我使用的是 Fedora 8。

哪款手机使用 Linux 会更好(诺基亚、索尼爱立信、三星……)?所有手机都支持使用 AT 命令发送和接收短信吗?

最佳答案

下面是一些可以帮助您入门的示例代码(在 Python 3000 中):

import time
import serial

recipient = "+1234567890"
message = "Hello, World!"

phone = serial.Serial("/dev/ttyACM0", 460800, timeout=5)
try:
time.sleep(0.5)
phone.write(b'ATZ\r')
time.sleep(0.5)
phone.write(b'AT+CMGF=1\r')
time.sleep(0.5)
phone.write(b'AT+CMGS="' + recipient.encode() + b'"\r')
time.sleep(0.5)
phone.write(message.encode() + b"\r")
time.sleep(0.5)
phone.write(bytes([26]))
time.sleep(0.5)
finally:
phone.close()

你还需要做两件事:

  • 以适当的格式对消息进行编码(主要是 GSM 03.38 ,在 unicode.org 上有一个方便的 translation table )。如果您真的不关心 ASCII 以外的任何字符,您可以只检查每个字符是否在 string.printable 中。

  • 查看消息长度(不知道是不是编码的问题,有时候是140个字符,有时候是160个字符)。

您可以使用 phone.readall() 检查错误,但最好在将消息发送到手机之前确保消息正常。另请注意, sleep 似乎是必要的。

大多数手机都能理解这一点。为了让我的旧诺基亚 C5 打开串行连接,我不得不从插入 USB 数据线时弹出的菜单中选择“PC 套件”。这应该同样适用于蓝牙。

代码使用 PySerial 包,可用于 python 2 和 3。

另见:

关于python - 如何使用 AT 命令发送/接收短信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2161197/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com