admin 管理员组

文章数量: 887006

最近项目遇到一个需求,要求在Windows客户端上实现控制安卓手机拨号和发消息的功能。目前此功能已完成,记录一下分享给有需要的朋友。

1.环境搭建
在http://adbshell/downloads处下载Windows下adb工具包,下载后将adb.exe程序所在目录添加到环境变量。
2.拨号功能实现
拨号功能实现比较简单,通过如下adb命令即可实现。
3.短信发送功能
翻阅网上相关短信发送命令,找到如下命令:
adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_bodyhelloworld
测试,果然可行。但是修改一下sms_body内容未 hello world时,出现了问题,控制台输出如下: 控制台解析adb sms_body时,无法解析sms_body内容中携带的空格,导致解析出错。 解决方法: sms_body内容添加单引号。
但是,上面命令只实现了打开短信编辑页面,将sms内容粘贴到短信内容编辑框,却并没有完成最后的“发送”操作。网上提示可以添加以下两句命令可实现 短信发送: adb shell input keyevent 22 adb shell input keyevent 66
以上命令在Android2.2.1及之前版本是可以实现短信发送功能的,但是Android更新后,已经对此功能进行了优化,现阶段 Android 5以上版本上面的命令已不能实现短信发送的功能了。 解决方法: 通过getevent命令找到短信发送按钮的x,y坐标,步骤如下: 1、getevent -l 捕获手机点击事件
其中:event5为手机屏幕, 548、943为点击发送按钮后getevent捕获到的点击坐标,此坐标为16进制,转换为10进制为1352,2371 2、 此命令模拟点击发送按钮,将之前暂存到信息编辑页面的内容发送出去。 adb shell input tap 1352 2374

总结: adb实现拨号: adb shelll am start -a android.intent.action.CALL tel:10086
adb实现信息发送: adb shell am start -a android.intent.action.SENDTO -d sms:10086 --es sms_body ' 摇 曳 单 车' adb shell input tap 1352 2371 注:坐标位置不同型号手机存在差异

本文标签: 发信息 手机 Windows