【发布时间】:2022-01-06 15:27:04
【问题描述】:
在通话中发送 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:/ $
【问题讨论】:
-
点击按钮的坐标是否适合您?
-
不,不幸的是我想处理不同的屏幕和Android版本,所以坐标会改变。我设法使用 KEYCODE_POUND 和 KEYCODE_STAR 以这种方式发送。
标签: android android-11 dtmf adb