当我们使用adb命令操作手机的时候经常会报错

adb操作手机打电话、发短信_第1张图片

这个错误一般是adb的端口(5037)被占用,造成adb server无法启动,解决问题的思路就是查看是哪个程序占用了adb调试端口,然后结束掉它就行。

  1. 查找哪个进程占用了5037端口

     netstat -aon|findstr "5037"

adb操作手机打电话、发短信_第2张图片

 2.结束对应进程

     可以看到PID为12500的程序占用了5037端口,打开任务管理器找到该进程对应程序sjk_daemon.exe,该进程是金山毒霸自带的金山手机助手,强制结束后会自动重启,只有卸掉金山毒霸或者暂时关闭金山毒霸

adb操作手机打电话、发短信_第3张图片


3.验证

结束进程后成功启动adb server登陆手机

adb操作手机打电话、发短信_第4张图片


4.通过adb命令打电话、发短信

打电话命令为:adb shell service call phone 2 s16 888888888888888(呼叫的号码)

其中phone表示服务名,2表示拨打动作

也可以使用这个命令:adb shell am start -a android.intent.action.CALL tel:8888888888888

wKiom1VW3pPwmDF9AAA-apYz92A815.jpg

adb操作手机打电话、发短信_第5张图片



发短信就稍微麻烦,发短信的时候保证手机屏幕是开的没有待机,分为下面三个步骤:

1. adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body  hello

打开了短信应用程序,当前焦点在文本框

adb操作手机打电话、发短信_第6张图片


2.adb shell input keyevent 22  焦点去到发送按键


adb操作手机打电话、发短信_第7张图片


3.adb shell input keyevent 66  回车,就是按下发送键

发送成功,收到回复

adb操作手机打电话、发短信_第8张图片