I have a problem when sending DTMF events inside of an active call.
I am using adb shell input text #0123* to send DTMF tones. This was working good so far for older Android versions. Starting from Android 11 (I didn't check 12 yet), special characters * and # are not working anymore and sending 8 and 3 instead.
If I am sending the text at other text fields, the special chars are formatted correctly, the error is only occurring inside the call application when having an active call and trying to send DTMF tones via dialpad.
Edit:
I tried sending with ' escaped:
User:~$ adb -s RF8N31NZ5SK shell
x1s:/ $ input text '#*'
x1s:/ $
But result is the same:
Edit-2:
It looks like dialer is not allowing special chars anymore on Android >= 11. I managed to do it via keyevents KEYCODE_POUND and KEYCODE_STAR:
User:~$ adb -s RF8N31NZ5SK shell
x1s:/ $ input keyevent KEYCODE_POUND
x1s:/ $ input keyevent KEYCODE_STAR
x1s:/ $
You can try adding apostrophe to surround text to sent because # character is used for comments on Android shell :
It worked on my side with Android 11