问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

代码模拟屏幕点击、触摸事件

发布网友 发布时间:2022-12-20 09:59

我来回答

1个回答

热心网友 时间:2023-09-27 19:31

最近需要实现一个功能,点击一个按钮,实现类型系统键盘的删除功能;有两种情形,

第一种情形:要删除的是editText中的内容,这个比较容易实现:

    int keyCode = KeyEvent.KEYCODE_DEL;

    KeyEvent keyEventDown =new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);

    KeyEvent keyEventUp =new KeyEvent(KeyEvent.ACTION_UP, keyCode);

    editText.onKeyDown(keyCode, keyEventDown);

    editText.onKeyUp(keyCode, keyEventUp);

第二种情形:要删除的是webview中的内容,上面的方式就行不通了,这个可以模拟系统键盘的按键事件来实现:

    Instrumentationinstrumentation =new Instrumentation();

    instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DEL);

    注意:这个需要在子线程中执行,否则会报错,模拟触摸事件如下:

        instrumentation.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(),

       SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN, 300, 300, 0));

        sendKeyDownUpSync(int key)内部调用了sendKeySync(KeyEvent event)方法,最终调用了    InputManager.getInstance().injectInputEvent(newEvent,  InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);方法;

该方法说明中有说明:

Requires {@link android.Manifest.permission.INJECT_EVENTS} to inject into

* windows that are owned by other applications.

也就是像其他applications注入事件时,才要求该权限;

        另一种模拟键盘的方式如下:

        try {

                String keyCommand ="input keyevent " + KeyEvent.KEYCODE_DEL;

                Runtimeruntime = Runtime.getRuntime();

                Process proc =runtime.exec(keyCommand);

        }    catch (IOException e) {

            e.printStackTrace();

    }
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
情侣文案英文高级浪漫87句 Love to the people don't wave.什么意思 gladtomeetyou怎么 gladtomeetyou.怎么回答 2016生肖猴运程 武汉买房88平方满50万落户政策 非武汉市户口在武汉市购买70平方总价50万的商品房,可以转户口吗... 我想在武汉买一套50万左右的新房子,谁能告诉我现在武昌,关山,江夏,有... 支付宝怎么开通步数授权? 总价50万能在武汉买一套两室一天的二手房吗? adb 模拟双击 快速点击屏幕 【shell】通过adb 模拟手机快速点击方法 关于茑萝的诗句 赤日炎炎古诗是在什么朝代编写的 十八岁的老翁,八十岁的青年.什么意思 八旬婆婆八旬翁,用头做枕感人深.什么意思 送:八十太翁是什么意思 八十翁多大 流放之路黑冠号在哪里 贪心便惹祸临身 名利从来有定凭 守旧安份自在好 清闲便是太平人 是什么意思 纷纷红紫已成尘,布谷声中夏令新。夹路桑麻行不尽,始知身是太平人。 请问这句诗是什么意思? 是使民养生丧死无憾也句式 从CD导入歌曲到itunes后,CD的文件保存在哪,是电脑里,还是itunes里? 州官放火文言文翻译 求文言文在线翻译。坐等。急嗷嗷嗷嗷!!! 小王子这本书说的是什么意思?蕴含了什么精神道理?能解释一下吗? 雪隐的雪隐含义之二 《正夜侍宴应诏(《英华》作正月望夜上阳宫侍宴应制)》古诗原文及翻译 形容别人很吵的诗句 关于汉字的诗句 关于汉字的诗句有哪些 lua模拟点击安卓屏幕 国六和国七有什么区别 国六刚到国七又要来了?新标准到底有多严格? 莫笑少年江湖梦是什么意思? (在线等)关于梦的解释....请注意看内容......... 思君风雪三更梦,浪迹江湖十年灯是什么意思 位居极品的成语解释 仰贤立品是成语吗? 带文和极的成语 陆游《鹊桥仙 一竿风月≥这首词表现怎样的生活情趣? 得力计算器怎么输入10的10次方 颜真卿与道教 女孩起名:美湿眼眶的女宝宝名字,悦耳悦目悦心 工商借记卡网银未注册手机银行未注册 农行APP为什么注册显示手机已注册手机梁道?但按手机号登入又显示该手机号尚未注册我行电子银行? 银行卡没有注册是什么意思??是不是指没有网银? 乾1隆年间鱼形玉器指什么意思 松下是如何理解并运用管理职能的? 松下五段的介绍 关于革新创新的诗句