如何通过android上的ADB命令通过pc拨打电话?
Posted
技术标签:
【中文标题】如何通过android上的ADB命令通过pc拨打电话?【英文标题】:How to make a call via pc by ADB command on android? 【发布时间】:2011-06-22 20:28:33 【问题描述】:我想通过 android 命令行上的 ADB 命令拨打电话。
我应该如何使用ADB命令通过PC拨打电话?
请提供源代码。
【问题讨论】:
是什么让您认为这是可能的? ddms 通过本机代码执行此操作我不太确定这是他在 shell 上发出的 android 命令... ddms 唯一的神奇之处在于它知道如何做很多事情,在这种情况下,这并不是什么大秘密。然而,ADB 守护程序有一些魔力,其形式是对在(安全)设备上运行的其他代码不可用的权限。但这适用于您 PC 上的代码,而不仅仅是 Google 的代码。 相关:How to pick up a call by adb 【参考方案1】:您应该这样做(将
$ adb -s <serialno> shell am start -a android.intent.action.CALL -d tel:555-5555
并在 logcat 中查看:
Starting: Intent act=android.intent.action.CALL dat=tel:xxx-xxx-xxxx
【讨论】:
是的,也可以确认... 如何进行视频通话? 太棒了!现在我不需要去我的车就可以解锁我的手机屏幕坏了 是否可以拨入电话?意思是好像有人打电话给设备,而不是相反? 如何执行USSD?我试过这个命令,我的手机试图打电话给 USSD :(【参考方案2】:你可以这样做:
-
在 cmd 中进入你的 adb
输入 adb 设备。您将获得的任何 ID 都将是您的设备编号
输入(不带引号):
adb -s "Your devices number" shell am start -a android.intent.action.CALL -d tel:"phone no. to call"
就是这样,你会得到如下响应:
Starting: Intent act=android.intent.action.CALL dat=tel:xxxxxxxxxx
【讨论】:
【参考方案3】:可以使用该命令通过PC触发Android呼叫号码。
adb shell am start -a android.intent.action.CALL -d tel:+CCXXXXXXXXXX
-
cc=国家代码
XXXXXXXXXX=电话号码
【讨论】:
【参考方案4】:在某些 Android 设备上,存在可执行文件
/system/bin/radiooptions
如果你运行它,会显示帮助
Usage: radiooptions [option] [extra_socket_args]
0 - RADIO_RESET,
1 - RADIO_OFF,
2 - UNSOL_NETWORK_STATE_CHANGE,
3 - QXDM_ENABLE,
4 - QXDM_DISABLE,
5 - RADIO_ON,
6 apn- SETUP_PDP apn,
7 - DEACTIVE_PDP,
8 number - DIAL_CALL number,
9 - ANSWER_CALL,
10 - END_CALL
拨打一个号码,你可以简单地运行
adb shell su -c "radiooptions 8 XXXXXXX"
XXXXXXX 将替换为电话号码。
我在很多 HTC 设备上都看到了这个命令。我目前在 HTC One 上运行 Cyanogenmod 10.2,它也在那里。也有可能,它只在配备高通无线电芯片的设备上可用。
【讨论】:
我的 Lollipop One+ One 的 /system/bin 中不存在无线电选项 这几乎只适用于 HTC,似乎已从其中一些中删除。如果您尝试其他方法,它可能会抱怨具有 PIE 能力。如果你用 -fPIE 选项编译它,你也许可以使用它。【参考方案5】:您可以启动拨号程序,首先使用查找包
adb shell dumpsys window windows | grep -E 'mCurrentFocus'
然后使用
启动它adb shell monkey -p <package> 1 (probably com.android.contacts)
通过单击拨号器的坐标,确保您在拨号器而不是联系人页面上
adb shell input tap <x> <y> (in my case 65, 80)
输入数字
adb shell input text <number>
然后打转盘坐标
adb shell input tap <x> <y> (in my case 220, 750)
肯定这个答案是多余的。但是,我之前遇到的所有答案都会启动一个对话框,询问您希望使用哪个应用程序来完成操作 - Skype、viber 等,这意味着如果您没有选择默认拨号器但有 ott 呼叫应用程序已安装,或者指定了替代的默认拨号程序,则不会通过 gsm 进行呼叫。此方法将确保使用 gsm。
【讨论】:
当您只需调用 android.intent.action.CALL 然后提供一个号码时,所有这些都完全不需要。记得使用 +COUNTRY_CODE 才能自动调用。如果您提供手机号码,它可以正常工作,否则您只会看到拨号器打开该号码而没有任何反应。在屏幕上点击不是防弹的,我什至看到它把我送到家而不是点击当前的意图。【参考方案6】:adb shell input keyevent 5 && adb shell input text 1234567890&&adb shell input keyevent 5
这里 1234567890 是电话号码
【讨论】:
以上是关于如何通过android上的ADB命令通过pc拨打电话?的主要内容,如果未能解决你的问题,请参考以下文章