0

在活动通话中发送 DTMF 事件时出现问题。

adb shell input text #0123*用来发送 DTMF 音。到目前为止,这对于较旧的 Android 版本运行良好。从 Android 11(我还没有检查 12)开始,特殊字符 * 和 # 不再起作用,而是发送 8 和 3。

如果我在其他文本字段中发送文本,则特殊字符的格式正确,该错误仅发生在通话应用程序内部,当有活动呼叫并尝试通过拨号盘发送 DTMF 音时。

编辑:
我尝试发送 ' 转义:

User:~$ adb -s RF8N31NZ5SK shell
x1s:/ $ input text '#*'
x1s:/ $

但结果是一样的:

Edit-2:
看起来拨号器不再允许在 Android >= 11 上使用特殊字符。我设法通过 keyevents KEYCODE_POUND 和 KEYCODE_STAR 做到了:

User:~$ adb -s RF8N31NZ5SK shell
x1s:/ $ input keyevent KEYCODE_POUND
x1s:/ $ input keyevent KEYCODE_STAR
x1s:/ $
4

2 回答 2

0

您可以转义哈希字符并将整个输入文本放在双引号中:

adb shell input text "\#1234*"

注意:在我的测试中,我必须使用双引号,单引号不起作用,使用单引号键入的文本是\#1234*. 但这可能取决于用于执行整个命令的终端/平台(在我的情况下是 Windows 10 命令行/cmd.exe)。

这个命令对我有用

于 2022-01-07T09:36:29.623 回答
0

您可以尝试在要发送的环绕文本中添加撇号,因为 # 字符用于 Android shell 上的注释:

adb shell input text '#1234*'

它适用于我的 Android 11

于 2022-01-06T15:47:06.777 回答