我想通过android拨号器拨一个号码,后者打开键盘/拨号器,然后使用亚行命令拨号。
我试图使用以下亚行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#*#*
但那不管用。
有人能帮我解释一下为什么不起作用吗?我怎么才能启动拨号器并拨那个号码呢?
谢谢!
发布于 2019-05-29 07:57:29
你到底想达到什么目的?这些代码被称为USSD代码(尝试代码)。在每个设备上都是不同的。好吧,他们中的一些人在大部分手机上工作,但这不是规则。请对这些代码非常小心,因为其中一些代码可能会对设备进行工厂重置或设置不当。
当通过亚行执行这些代码时,您需要对它们进行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但是,如果代码在通过拨号程序插入时对您不起作用,则这两者都不起作用。我用Android6.0在我的索尼Xperia Z5上尝试了你的代码,但是它没有工作:
BTW usb设置可以通过Settings>Developer Options>USB配置访问。
发布于 2019-06-14 19:31:23
我计算出了我需要从命令提示符发出的命令,使用亚行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命令。
https://stackoverflow.com/questions/56351426
复制相似问题