【问题标题】:How to make a call via pc by ADB command on android?如何通过android上的ADB命令通过pc拨打电话?
【发布时间】:2011-06-22 20:28:33
【问题描述】:

我想通过 android 命令行上的 ADB 命令拨打电话。

我应该如何使用ADB命令通过PC拨打电话?

请提供源代码。

【问题讨论】:

  • 是什么让您认为这是可能的? ddms 通过本机代码执行此操作我不太确定这是他在 shell 上发出的 android 命令...
  • ddms 唯一的神奇之处在于它知道如何做很多事情,在这种情况下,这并不是什么大秘密。然而,ADB 守护程序有一些魔力,其形式是对在(安全)设备上运行的其他代码不可用的权限。但这适用于您 PC 上的代码,而不仅仅是 Google 的代码。

标签: android command-line adb


【解决方案1】:

您应该这样做(将 替换为您的设备或模拟器的序列号,例如 emulator-5554):

$ 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】:

你可以这样做:

  1. 在 cmd 中进入你的 adb
  2. 输入 adb 设备。您将获得的任何 ID 都将是您的设备编号
  3. 输入(不带引号):

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
    
    1. cc=国家代码
    2. 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 是电话号码

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多