怎么在Android开发中模拟输入

  介绍

这篇文章给大家介绍怎么在Android开发中模拟输入,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

输入指令

我们打开亚行,进入壳,输入输入可以看到指令的参数说明。

怎么在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,在控制台可以看到日志。

怎么在Android开发中模拟输入

可以看到在按下H的时候,EditText没有获取到焦点。

怎么在Android开发中模拟输入

可能是页面初始化以后就开始执行输入操作,此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年),

怎么在Android开发中模拟输入

keyevent

execShellCmd (“input  text  & # 39;你好,& # 39;,\ n  input  keyevent  68年,\ n  input  keyevent  21“);

输入你好,世界,然后输入& # 39;,然后左移光标

怎么在Android开发中模拟输入

常见的键码可以参见框架/基地/core/java/Android/视图/keyevent。java

怎么在Android开发中模拟输入

点击

Android中坐标系如下图所示。

怎么在Android开发中模拟输入

我们可以打开手机中的开发者选项→指针位置来辅助定位,可以再上方看到x, y相对的偏移量。

怎么在Android开发中模拟输入

点击屏幕(100200)位置。

execShellCmd (“input  tap  100年,200年“);

点击

滑动屏幕和利用相似只需要传入两个坐标即可。后面也可以设置滑动时间(女士),时间越短滑动的相应距离就会越长。

从屏幕(100200)滑动到(300400)。

execShellCmd (“input  swipe  100, 200, 300, 400“);

关于怎么在Android开发中模拟输入就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

怎么在Android开发中模拟输入