【发布时间】:2015-11-21 16:27:16
【问题描述】:
我尝试了示例代码:
进程 p = Runtime.getRuntime().exec("ls"); p.waitFor();
我希望应用在屏幕上生成触摸事件。我必须使用什么命令代替“ls”?
提前致谢。
【问题讨论】:
-
这是不可能的,除非在有根设备上。
-
我只在有根设备上试用它。那么,你能帮我解决吗?谢谢
我尝试了示例代码:
进程 p = Runtime.getRuntime().exec("ls"); p.waitFor();
我希望应用在屏幕上生成触摸事件。我必须使用什么命令代替“ls”?
提前致谢。
【问题讨论】:
整个答案假设您在有根设备上运行应用程序并获得必要的权限。
这在很大程度上取决于您打算使用什么命令。有一个“输入”二进制文件可以被命令并执行一些输入:
使用 ADB(Android 设备桥),您可以发出:
adb shell input 看看:
用法:输入[] [...]
来源是:
trackball
joystick
touchnavigation
mouse
keyboard
gamepad
touchpad
dpad
stylus
touchscreen
命令和默认来源是:
text <string> (Default: touchscreen)
keyevent [--longpress] <key code number or name> ... (Default: keyboard)
tap <x> <y> (Default: touchscreen)
swipe <x1> <y1> <x2> <y2> [duration(ms)] (Default: touchscreen)
press (Default: trackball)
roll <dx> <dy> (Default: trackball)
基本上,您可以发出“屏幕触摸”,例如滑动、点击等。甚至可以发出设备上的“按钮”,例如音量增大、减小、电源、“主页”、“返回”等... 例子:
input tap 410 200 或 input swipe 410 330 410 600 或 input keyevent KEY_POWER
【讨论】: