我想通过android拨号器拨打一个号码,该拨号器打开键盘/拨号器并使用adb命令拨打该号码。
我尝试使用以下adb shell命令拨打该号码:
adb shell am start -a android.intent.action.CALL -d tel:*#*#0808#*#*
但是这会将OTA号码作为MMI代码拨打,这不是我们想要的。
有人告诉我代码##0808##是启动隐藏菜单的秘密代码,必须通过拨号程序拨打它。
>我发现该命令:
adb shell monkey -p com.android.dialer -c android.intent.category.LAUNCHER 1
启动电话应用程序(但不启动num键盘)。
所以,然后我尝试使用以下命令拨打它:
adb shell monkey -p com.android.dialer/com.android.incallui.InCallActivity -c android.intent.category.LAUNCHER 1 *#*#0808#*#*
但这没用。
有人可以帮忙为什么它不起作用?以及如何启动拨号程序并拨打该号码?
谢谢!
答案 0 :(得分:0)
您到底想达到什么目的?这些代码称为USSD代码(请尝试使用Google Android USSD代码)。它们在每个设备上都不同。好的,其中一些可以在大多数电话上运行,但这不是规则。请谨慎使用这些代码,因为其中一些代码可能会导致出厂重置或设备设置不正确。
通过adb执行这些代码时,您需要对其进行url编码(检查https://www.degraeve.com/reference/urlencoding.php),因此*
为%2A
,而#
为%23
您的情况:
adb shell am start -a android.intent.action.CALL -d tel:%2A%23%2A%230808%23%2A%23%2A
但是,如果通过拨号程序插入的代码对您不起作用,那么这也不起作用。 我在装有Android 6.0的Sony Xperia Z5上尝试了您的代码,但它不起作用:-(
可以通过“设置”>“开发人员选项”>“ USB配置”来访问BTW usb设置
答案 1 :(得分:0)
我使用adb shell从命令提示符中找出了需要提供的命令,以完成所需的操作。
adb shell input keyevent KEYCODE_HOME
adb shell input tap 197 2523 #enter the dialer
adb shell input tap 1272 2467 #enter the dialer keypad
adb shell input text "*#*#4412#*#*"
这类数字称为USSD代码/ MMI命令。