返回顶部
首页 > 资讯 > 移动开发 >Android开发中如何模拟输入
  • 106
分享到

Android开发中如何模拟输入

2024-04-02 19:04:59 106人浏览 安东尼
摘要

目录input 指令模拟输入textkeyeventtapswipe主要思路是使用 adb shell input指令来模拟按键及触摸输入。 但是前提是需要root,且华为手机出于安

主要思路是使用 adb shell input指令来模拟按键及触摸输入。

但是前提是需要root,且华为手机出于安全考虑已经停止了root解码。所以测试建议换个别的手机。或是直接用AS中的模拟器,用有Google apis的版本。

input 指令

我们打开adb,进入shell,输入input可以看到指令的参数说明。

其中source一般都是用的默认值可以忽略,我们主要关注的就是后面的command

  • text:文本输入;keyevent:键盘按键;这两条指令是所有设备通用的。
  • tap:点击屏幕;swipe:滑动屏幕;这两条指令适用于有触摸屏的设备。
  • press,roll适用于有触摸球的设备。

模拟输入

在使用input指令之前我们要先获取一下root权限。


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(); 
 } 
}

text

1.输入之前需要提前获取焦点。
2.输入有特殊含义的特殊字符,无法直接输入 需要使用keyevent 如: ' '

我们整一个EditText,然后进行text输入测试。


execShellCmd("input text 'hello,world'");

我们发现少了一个H,在控制台可以看到日志

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

可能是页面初始化以后就开始执行输入操作,此时editText还没有获取到焦点,获取焦点可能存在点延时。所以我们尝试延迟1s后进行输入。


private Handler handler = new Handler();
private Runnable task = new Runnable() {
 public void run() {
 execShellCmd("input text 'hello,world'");
 }
};

// 延迟1s后输入
handler.postDelayed(task,1000);

keyevent


execShellCmd("input text 'hello,world' \n input keyevent 68 \n input keyevent 21");

输入hello,world,然后输入',然后左移光标

常见的keycode可以参见frameworks/base/core/java/Android/view/KeyEvent.java

tap

android 中坐标系如下图所示。

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

点击屏幕(100,200)位置。


execShellCmd("input tap 100 200");

swipe

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

从屏幕(100,200)滑动到(300,400)。


execShellCmd("input swipe 100 200 300 400");

以上就是Android开发中如何模拟输入的详细内容,更多关于Android 模拟输入的资料请关注编程网其它相关文章!

--结束END--

本文标题: Android开发中如何模拟输入

本文链接: https://lsjlt.com/news/121721.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android开发中如何模拟输入
    目录input 指令模拟输入textkeyeventtapswipe主要思路是使用 adb shell input指令来模拟按键及触摸输入。 但是前提是需要root,且华为手机出于安...
    99+
    2024-04-02
  • 怎么在Android开发中模拟输入
    这篇文章给大家介绍怎么在Android开发中模拟输入,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。input 指令我们打开adb,进入shell,输入input可以看到指令的参数说明。其中source一般都是用的默认值...
    99+
    2023-06-14
  • Android开发中如何实现校验输入的email是否合法
    本篇文章为大家展示了Android开发中如何实现校验输入的email是否合法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android 校验email是否合法String regEx = &q...
    99+
    2023-05-31
    android email roi
  • android 使用uinput模拟输入设备的方法
    在google remote中,android接收端接收socket发来的IR CODE,然后将IR CODE模拟出来发给系统处理,这就是google remote接收端的原理...
    99+
    2022-06-06
    输入 方法 Android
  • Android开发 文本输入 EditText 监听器
    1.EditText 文本编辑框:用户输入文本信息 可以输入的文本类型如下:  常用属性:  系统默认的EditText: 效果图: 当然也可以自定义EditText的背景,比如用selector设...
    99+
    2023-09-03
    android android studio
  • web开发中如何为输入框加入数字js校验
    小编给大家分享一下web开发中如何为输入框加入数字js校验,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!js限制只能数字输入,并且在把输入的“非法字符”清除掉之后将焦点停留在输入非法字符的...
    99+
    2024-04-02
  • android开发者模式如何关闭
    要关闭Android开发者模式,可以按照以下步骤操作: 打开手机的设置菜单。 滚动到底部,找到“关于手机”或类似的选项,点击进入。...
    99+
    2023-10-25
    android
  • web开发中如何入门建造者模式
    本篇文章给大家分享的是有关web开发中如何入门建造者模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天我们要讲的是设计模式中三种模式(创建...
    99+
    2024-04-02
  • linux如何进入开发者模式
    在Linux中,开发者模式通常指的是启用一些额外的开发功能和工具,以便开发者可以更方便地进行软件开发和调试。要进入开发者模式,可以按...
    99+
    2023-10-22
    linux
  • ASP.NET Web开发中如何进行数据输入窗体
    这期内容当中小编将会给大家带来有关ASP.NET Web开发中如何进行数据输入窗体,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Web框架要达到快速开发,又便于维护,进行了一系列的努力。请看最初始的ASP...
    99+
    2023-06-17
  • android开发者模式如何关闭及开启
    要关闭或开启Android设备的开发者模式,可以按照以下步骤操作:关闭开发者模式:1. 打开设备的设置菜单。2. 滚动至底部,找到“...
    99+
    2023-10-07
    Android
  • Java开发中如何模拟接口工具moco的使用
    本篇文章给大家分享的是有关Java开发中如何模拟接口工具moco的使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 Java开发中模拟接口...
    99+
    2024-04-02
  • Android开发中怎么实现一个输入框提示功能
    这篇文章给大家介绍Android开发中怎么实现一个输入框提示功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。可以使用cursor来动态加载AutoCompleteTextView的数据,从而 实现时时搜索提示,要实现...
    99+
    2023-05-31
    android roi
  • 如何使用PHP进行仿真模拟开发?
    随着科技的发展,仿真模拟技术在各个领域中的应用越来越广泛,对于软件开发而言,仿真模拟也变得越来越重要。PHP作为一门常用的编程语言,在仿真模拟开发中也有着广泛的应用。本文将从以下几个方面介绍如何利用PHP进行仿真模拟开发。一、什么是PHP仿...
    99+
    2023-05-21
    开发 PHP 仿真模拟
  • Android开发之WebView输入框提示解决办法
    做基于WebView应用时,页面上有一个输入框,当输入的文字过多时,超过输入框的行数时,输入框能够滚动,这时间问题来了,输入的提示箭头会移动到输入框外,如何解决这个问题呢,查找...
    99+
    2022-06-06
    android开发 webview Android
  • PHP开发中如何安全处理用户输入和请求
    随着互联网的发展和普及,有越来越多的人参与到Web应用程序的开发中。而作为其中常用的一种开发语言,PHP的使用也越来越广泛。然而,由于用户输入的不可控性,Web应用程序往往面临着安全风险,如SQL注入、跨站脚本攻击等。因此,在进行PHP开发...
    99+
    2023-10-21
    输入验证 (Input Validation) 防止注入攻击 (Preventing SQL Injection) 跨站
  • PHP开发中如何安全地处理用户输入数据
    随着互联网的发展,用户输入数据在网站和应用程序中起着至关重要的作用。然而,不安全地处理用户输入数据可能会造成严重的安全漏洞,如SQL注入、跨站脚本攻击等。为了确保网站和应用程序的安全性,在PHP开发中,我们需要采取一些安全措施来处理用户输入...
    99+
    2023-10-21
    输入验证 (Input Validation) 数据过滤 (Data Filtering) 防止SQL注入 (Preve
  • C#开发中如何处理用户输入的验证问题
    C#开发中如何处理用户输入的验证问题,需要具体代码示例引言:在C#开发中,处理用户输入的验证问题是非常重要的一环。用户输入的验证不仅可以保证系统的安全性,还可以提高系统的稳定性和用户体验。本文将介绍C#开发中如何处理用户输入的验证问题,并提...
    99+
    2023-10-22
    用户输入验证 C#验证处理 输入验证处理
  • android开发者模式如何调试程序
    要调试Android应用程序,您需要按照以下步骤打开开发人员选项和USB调试:1. 在Android设备上打开“设置”应用程序。2....
    99+
    2023-10-07
    android
  • HBuilder开发uniapp添加android的模拟器的方法
    我们知道使用uniapp开发多端app非常方便,开发过程中的模拟器也可以提高我们测试代码的效率。但我们按uniapp官网的方法,上google的官网下载模拟器,往往非常不方便。 下面我们来看一下使用其他模拟器的方法。 我们知道android...
    99+
    2023-09-02
    uni-app adb HBuilder Android模拟器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作