news 2026/7/28 15:34:56

android 中用代码模拟发送按键

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
android 中用代码模拟发送按键
android 中用代码模拟发送按键

有时候在代码中需要模拟一些用户操作的按键,例如TV 中遥控器的按键,一些测试脚本的编写。再比如android 手机中虚拟按键,以及悬浮窗中的返回功能,等等。都是模拟发送按键来操作。

这里介绍三种方法,来实现用代码模拟发送按键。目前我都是在系统中(有系统签名和shareuid)测试的。不知道如果第三方app想要调用使用。不知权限是否够

1.调用input 命令

使用过串口的都明白,如果需要debug 模拟按键,会使用input keyevent 的方法。这个使用android runtime 模拟执行命令

try{StringkeyCommand="input keyevent "+KeyEvent.KEYCODE_1;Runtimeruntime=Runtime.getRuntime();Processproc=runtime.exec(keyCommand);}catch(IOExceptione){}
2.在线程中使用Instrumentation

这个方法必须要在线程中执行才有效

InstrumentationmInst=newInstrumentation();mInst.sendKeyDownUpSync(KeyEvent.KEYCODE_1);
3.调用InputManager api(android 系统虚拟按键就是使用这种方法)

InputManager.getInstance().injectInputEvent 为隐藏方法,如果不是在系统中使用,则需要使用反射,或者将源码导入app,使其编译不报错。

longnow=SystemClock.uptimeMillis();KeyEventdown=newKeyEvent(now,now,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_1,0);InputManager.getInstance().injectInputEvent(down,InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);KeyEventup=newKeyEvent(now,now,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_1,0);InputManager.getInstance().injectInputEvent(up,InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 15:31:58

3步掌握FunClip:用AI语音识别让视频剪辑变得如此简单

3步掌握FunClip:用AI语音识别让视频剪辑变得如此简单 【免费下载链接】FunClip FunASR-powered video transcription, subtitle generation, and LLM-assisted clipping tool with a local Gradio UI. 项目地址: https://gitcode.com/GitHub_Trending/fu/FunClip …

作者头像 李华
网站建设 2026/7/28 15:31:52

OpenRGB终极指南:一站式免费开源RGB灯光控制软件

OpenRGB终极指南:一站式免费开源RGB灯光控制软件 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Releases ca…

作者头像 李华
网站建设 2026/7/28 15:31:48

C/C++:子串判断

一、子串判断题目描述我们定义字符串包含关系:字符串Aabc,字符串Bab,字符串Cac,则说A包含B,A和C没有包含关系。输入描述:两个字符串,判断这个两个字符串是否具有包含关系,测试数据有多组&#x…

作者头像 李华
网站建设 2026/7/28 15:30:38

生产级JSON生成:Taotoken实测6种方法,GPT-5.4在工具调用场景翻车率超15%

大模型JSON生成稳定性深度评测:6种方案与Taotoken实战指南 问题背景与现状分析 在当前的AI应用开发中,JSON格式数据的生成质量已成为影响系统稳定性的关键因素。根据Taotoken平台2024年Q1的故障统计报告,约有23.7%的API异常源于大模型生成的…

作者头像 李华
网站建设 2026/7/28 15:24:56

阻抗变换器原理与应用:从基础到实战

1. 阻抗变换器到底是什么?阻抗变换器这个名词听起来挺唬人的,但说白了就是个"阻抗翻译官"。想象一下你正在用中文跟一个只会说英语的老外交流,中间需要个翻译——阻抗变换器在电路里干的就是这个活。在射频和微波工程领域&#xff…

作者头像 李华