首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Redmi 7上运行adb shell中的AT命令

在Redmi 7上运行adb shell中的AT命令
EN

Stack Overflow用户
提问于 2020-06-16 12:34:18
回答 2查看 786关注 0票数 1

我试过这个:

代码语言:javascript
复制
echo -e "ATD123456789;\r" > /dev/smd0

然后当我跑的时候

代码语言:javascript
复制
cat /dev/smd0

我得到了这个输出:

代码语言:javascript
复制
ATD123456789;

这就是我应该看到的吗?电话没有响应命令。

更新:当我使用smd7或smd11时,手机打了个电话。问题是,我试图使用AT+CMGS发送短信,但它不起作用。

Update2:我运行以下命令:cat /dev/smd7 & echo -e "AT+CMGS=24;\r" > /dev/smd7。然后输入PDU消息,得到如下消息:/system/bin/sh: 079...771B: not found

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-16 21:27:03

您可能知道,命令

代码语言:javascript
复制
ATD<number>;\r

对目标号码执行语音调用(如果没有分号;,则调用类型将取决于AT+FCLASS命令的当前设置)。

默认情况下,OK结果代码将在远程铃声一开始就被接收到,因此在几秒钟之后。但是,如果存在网络问题或远程号码不可用/不存在,则需要更多的时间。

在语音呼叫期间,ATD命令的默认超时时间为30,可以通过发出ATS7命令来更改。例如,设置1分钟超时:

代码语言:javascript
复制
ATS7=60

您得到的答案是命令echo:实际上,在默认情况下,调制解调器会回显发送到其AT端口的每个字符(可以通过ATE0命令解压回送,并使用ATE1再次启用)。接收它**是调制解调器正确开启并正确通信的证明。

所以,即使我知道这并不是你唯一希望看到的(你希望看到一个答案!)你应该去看看的。

为了得到你的回答,我会给你一些建议:

  1. 使用更短的超时开始提供更简单的命令。例如,非常基本的AT
  2. 确保至少等待最大命令超时。
  3. 在背景中设置cat命令,并在开始提供命令之前:
代码语言:javascript
复制
    cat /dev/smd0 &

    echo -e "AT\r" > /dev/smd0
    OK

注意:我不知道命令中有任何超时。

票数 1
EN

Stack Overflow用户

发布于 2022-11-16 09:21:11

若要进行交互式会话,可以使用:

strace 2>/dev/null -e inject=ioctl:retval=0 microcom /dev/smdXX

如果没有strace命令,microcom将返回一个ioctl错误。

Strace让microcom认为ioctl成功了,因此它允许它继续运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62408619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档