这篇文章给大家介绍怎么在Android开发中模拟输入,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
输入指令
我们打开亚行,进入壳,输入输入可以看到指令的参数说明。
其中源一般都是用的默认值可以忽略,我们主要关注的就是后面的命令
- <李>
文本:文本输入;keyevent:键盘按键;这两条指令是所有设备通用的。
李> <李>点击:点击屏幕;滑动:滑动屏幕;这两条指令适用于有触摸屏的设备。
李> <李>出版社,卷适用于有触摸球的设备。
李>模拟输入
在使用输入指令之前我们要先获取一根下权限。
private void execShellCmd (String cmd), {, , try {大敌; ,Process Process =, Runtime.getRuntime () .exec (“su");, ,OutputStream OutputStream =, process.getOutputStream (),, ,DataOutputStream DataOutputStream =, new DataOutputStream (, ,,outputStream); ,dataOutputStream.writeBytes (cmd),, ,dataOutputStream.flush (),, ,dataOutputStream.close (),, ,outputStream.close (),, ,}catch (Throwable t), {, ,t.printStackTrace (),, }大敌; }
文本
1。输入之前需要提前获取焦点。
2。输入有特殊含义的特殊字符,无法直接输入需要使用keyevent如:& # 39;& # 39;
我们整一个EditText,然后进行文本输入测试。
execShellCmd (“input  text & # 39;你好,& # 39;“);
我们发现少了一个H,在控制台可以看到日志。
可以看到在按下H的时候,EditText没有获取到焦点。
可能是页面初始化以后就开始执行输入操作,此EditText时还没有获取到焦点,获取焦点可能存在点延时,所以我们尝试延迟1 s后进行输入。
private Handler Handler =, new 处理程序(); 时间=private Runnable  task new Runnable (), { ,public void  run (), { ,execShellCmd (“input  text & # 39;你好,& # 39;“); ,} };//,延迟1 s后输入 handler.postDelayed(任务,1000年),
keyevent
execShellCmd (“input  text & # 39;你好,& # 39;,\ n input keyevent 68年,\ n input keyevent 21“);
输入你好,世界,然后输入& # 39;,然后左移光标
常见的键码可以参见框架/基地/core/java/Android/视图/keyevent。java
点击
Android中坐标系如下图所示。
我们可以打开手机中的开发者选项→指针位置来辅助定位,可以再上方看到x, y相对的偏移量。
点击屏幕(100200)位置。
execShellCmd (“input  tap 100年,200年“);
点击
滑动屏幕和利用相似只需要传入两个坐标即可。后面也可以设置滑动时间(女士),时间越短滑动的相应距离就会越长。
从屏幕(100200)滑动到(300400)。
execShellCmd (“input swipe 100, 200, 300, 400“);
关于怎么在Android开发中模拟输入就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。