有时我们需要程序模拟按钮或点击,而手机本身又没有,哪么可以采取adb 模拟实现,最后再去实际设备去测试(前期一般都拿不到设备);
如模拟上一首,下一首,暂停等,手机上是没有的,但有些设备上是有的;
//这条命令相当于按了设备的语音键(按此键后,进入语音识别)
public static final int KEY_VOICE = 130;
adb shell input keyevent 130
在Activity 中 实现 onKeyDown,收到KeyEvent.KEYCODE_MEDIA_RECORD后,实现自己需要的功能,返回true即可;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode() == KeyEvent.KEYCODE_MEDIA_RECORD){ L.e("Receive KeyEvent.KEYCODE_MEDIA_RECORD");
return true;
}
return super.onKeyDown(keyCode, event);
}
其它:
//可以解锁屏幕
adb shell input keyevent 82
//在屏幕上做划屏操作,前四个数为坐标点,后面是滑动的时间(单位毫秒)
adb shell input swipe 50 250 250 250 500
//在屏幕上点击坐标点x=50 y=250的位置。
adb shell input tap 50 250
//输入字符abc
adb shell input text abc
附 其它按键值:
每个数字与keycode对应表如下:
0 --> "KEYCODE_UNKNOWN"
1 --> "KEYCODE_MENU"
2 --> "KEYCODE_SOFT_RIGHT"
3 --> "KEYCODE_HOME"
4 --> "KEYCODE_BACK"
5 --> "KEYCODE_CALL"
6 --> "KEYCODE_ENDCALL"
7 --> "KEYCODE_0"
8 --> "KEYCODE_1"
9 --> "KEYCODE_2"
10 --> "KEYCODE_3"
11 --> "KEYCODE_4"
12 --> "KEYCODE_5"
13 --> "KEYCODE_6"
14 --> "KEYCODE_7"
15 --> "KEYCODE_8"
16 --> "KEYCODE_9"
17 --> "KEYCODE_STAR"
18 --> "KEYCODE_POUND"
19 --> "KEYCODE_DPAD_UP"
20 --> "KEYCODE_DPAD_DOWN"
21 --> "KEYCODE_DPAD_LEFT"
22 --> "KEYCODE_DPAD_RIGHT"
23 --> "KEYCODE_DPAD_CENTER"
24 --> "KEYCODE_VOLUME_UP"
25 --> "KEYCODE_VOLUME_DOWN"
26 --> "KEYCODE_POWER"
27 --> "KEYCODE_CAMERA"
28 --> "KEYCODE_CLEAR"
29 --> "KEYCODE_A"
30 --> "KEYCODE_B"
31 --> "KEYCODE_C"
32 --> "KEYCODE_D"
33 --> "KEYCODE_E"
34 --> "KEYCODE_F"
35 --> "KEYCODE_G"
36 --> "KEYCODE_H"
37 --> "KEYCODE_I"
38 --> "KEYCODE_J"
39 --> "KEYCODE_K"
40 --> "KEYCODE_L"
41 --> "KEYCODE_M"
42 --> "KEYCODE_N"
43 --> "KEYCODE_O"
44 --> "KEYCODE_P"
45 --> "KEYCODE_Q"
46 --> "KEYCODE_R"
47 --> "KEYCODE_S"
48 --> "KEYCODE_T"
49 --> "KEYCODE_U"
50 --> "KEYCODE_V"
51 --> "KEYCODE_W"
52 --> "KEYCODE_X"
53 --> "KEYCODE_Y"
54 --> "KEYCODE_Z"
55 --> "KEYCODE_COMMA"
56 --> "KEYCODE_PERIOD"
57 --> "KEYCODE_ALT_LEFT"
58 --> "KEYCODE_ALT_RIGHT"
59 --> "KEYCODE_SHIFT_LEFT"
60 --> "KEYCODE_SHIFT_RIGHT"
61 --> "KEYCODE_TAB"
62 --> "KEYCODE_SPACE"
63 --> "KEYCODE_SYM"
64 --> "KEYCODE_EXPLORER"
65 --> "KEYCODE_ENVELOPE"
66 --> "KEYCODE_ENTER"
67 --> "KEYCODE_DEL"
68 --> "KEYCODE_GRAVE"
69 --> "KEYCODE_MINUS"
70 --> "KEYCODE_EQUALS"
71 --> "KEYCODE_LEFT_BRACKET"
72 --> "KEYCODE_RIGHT_BRACKET"
73 --> "KEYCODE_BACKSLASH"
74 --> "KEYCODE_SEMICOLON"
75 --> "KEYCODE_APOSTROPHE"
76 --> "KEYCODE_SLASH"
77 --> "KEYCODE_AT"
78 --> "KEYCODE_NUM"
79 --> "KEYCODE_HEADSETHOOK"
80 --> "KEYCODE_FOCUS"
81 --> "KEYCODE_PLUS"
82 --> "KEYCODE_MENU"
83 --> "KEYCODE_NOTIFICATION"
84 --> "KEYCODE_SEARCH"
85 --> "TAG_LAST_KEYCODE"
KEYCODE列表
电话键
|
||
KEYCODE_CALL | 拨号键 | 5 |
KEYCODE_ENDCALL | 挂机键 | 6 |
KEYCODE_HOME | 按键Home | 3 |
KEYCODE_MENU | 菜单键 | 82 |
KEYCODE_BACK | 返回键 | 4 |
KEYCODE_SEARCH | 搜索键 | 84 |
KEYCODE_CAMERA | 拍照键 | 27 |
KEYCODE_FOCUS | 拍照对焦键 | 80 |
KEYCODE_POWER | 电源键 | 26 |
KEYCODE_NOTIFICATION | 通知键 | 83 |
KEYCODE_MUTE | 话筒静音键 | 91 |
KEYCODE_VOLUME_MUTE | 扬声器静音键 | 164 |
KEYCODE_VOLUME_UP | 音量增加键 | 24 |
KEYCODE_VOLUME_DOWN | 音量减小键 | 25 |
控制键
|
||
KEYCODE_ENTER | 回车键 | 66 |
KEYCODE_ESCAPE | ESC键 | 111 |
KEYCODE_DPAD_CENTER | 导航键 确定键 | 23 |
KEYCODE_DPAD_UP | 导航键 向上 | 19 |
KEYCODE_DPAD_DOWN | 导航键 向下 | 20 |
KEYCODE_DPAD_LEFT | 导航键 向左 | 21 |
KEYCODE_DPAD_RIGHT | 导航键 向右 | 22 |
KEYCODE_MOVE_HOME | 光标移动到开始键 | 122 |
KEYCODE_MOVE_END | 光标移动到末尾键 | 123 |
KEYCODE_PAGE_UP | 向上翻页键 | 92 |
KEYCODE_PAGE_DOWN | 向下翻页键 | 93 |
KEYCODE_DEL | 退格键 | 67 |
KEYCODE_FORWARD_DEL | 删除键 | 112 |
KEYCODE_INSERT | 插入键 | 124 |
KEYCODE_TAB | Tab键 | 61 |
KEYCODE_NUM_LOCK | 小键盘锁 | 143 |
KEYCODE_CAPS_LOCK | 大写锁定键 | 115 |
KEYCODE_BREAK | Break/Pause键 | 121 |
KEYCODE_SCROLL_LOCK | 滚动锁定键 | 116 |
KEYCODE_ZOOM_IN | 放大键 | 168 |
KEYCODE_ZOOM_OUT | 缩小键 | 169 |
组合键
|
|
KEYCODE_ALT_LEFT | Alt+Left |
KEYCODE_ALT_RIGHT | Alt+Right |
KEYCODE_CTRL_LEFT | Control+Left |
KEYCODE_CTRL_RIGHT | Control+Right |
KEYCODE_SHIFT_LEFT | Shift+Left |
KEYCODE_SHIFT_RIGHT | Shift+Right |
基本
|
||
KEYCODE_0 | 按键'0' | 7 |
KEYCODE_1 | 按键'1' | 8 |
KEYCODE_2 | 按键'2' | 9 |
KEYCODE_3 | 按键'3' | 10 |
KEYCODE_4 | 按键'4' | 11 |
KEYCODE_5 | 按键'5' | 12 |
KEYCODE_6 | 按键'6' | 13 |
KEYCODE_7 | 按键'7' | 14 |
KEYCODE_8 | 按键'8' | 15 |
KEYCODE_9 | 按键'9' | 16 |
KEYCODE_A | 按键'A' | 29 |
KEYCODE_B | 按键'B' | 30 |
KEYCODE_C | 按键'C' | 31 |
KEYCODE_D | 按键'D' | 32 |
KEYCODE_E | 按键'E' | 33 |
KEYCODE_F | 按键'F' | 34 |
KEYCODE_G | 按键'G' | 35 |
KEYCODE_H | 按键'H' | 36 |
KEYCODE_I | 按键'I' | 37 |
KEYCODE_J | 按键'J' | 38 |
KEYCODE_K | 按键'K' | 39 |
KEYCODE_L | 按键'L' | 40 |
KEYCODE_M | 按键'M' | 41 |
KEYCODE_N | 按键'N' | 42 |
KEYCODE_O | 按键'O' | 43 |
KEYCODE_P | 按键'P' | 44 |
KEYCODE_Q | 按键'Q' | 45 |
KEYCODE_R | 按键'R' | 46 |
KEYCODE_S | 按键'S' | 47 |
KEYCODE_T | 按键'T' | 48 |
KEYCODE_U | 按键'U' | 49 |
KEYCODE_V | 按键'V' | 50 |
KEYCODE_W | 按键'W' | 51 |
KEYCODE_X | 按键'X' | 52 |
KEYCODE_Y | 按键'Y' | 53 |
KEYCODE_Z | 按键'Z' | 54 |
符号
|
|
KEYCODE_PLUS | 按键'+' |
KEYCODE_MINUS | 按键'-' |
KEYCODE_STAR | 按键'*' |
KEYCODE_SLASH | 按键'/' |
KEYCODE_EQUALS | 按键'=' |
KEYCODE_AT | 按键'@' |
KEYCODE_POUND | 按键'#' |
KEYCODE_APOSTROPHE | 按键''' (单引号) |
KEYCODE_BACKSLASH | 按键'\' |
KEYCODE_COMMA | 按键',' |
KEYCODE_PERIOD | 按键'.' |
KEYCODE_LEFT_BRACKET | 按键'[' |
KEYCODE_RIGHT_BRACKET | 按键']' |
KEYCODE_SEMICOLON | 按键';' |
KEYCODE_GRAVE | 按键'`' |
KEYCODE_SPACE | 空格键 |
小键盘
|
|
KEYCODE_NUMPAD_0 | 小键盘按键'0' |
KEYCODE_NUMPAD_1 | 小键盘按键'1' |
KEYCODE_NUMPAD_2 | 小键盘按键'2' |
KEYCODE_NUMPAD_3 | 小键盘按键'3' |
KEYCODE_NUMPAD_4 | 小键盘按键'4' |
KEYCODE_NUMPAD_5 | 小键盘按键'5' |
KEYCODE_NUMPAD_6 | 小键盘按键'6' |
KEYCODE_NUMPAD_7 | 小键盘按键'7' |
KEYCODE_NUMPAD_8 | 小键盘按键'8' |
KEYCODE_NUMPAD_9 | 小键盘按键'9' |
KEYCODE_NUMPAD_ADD | 小键盘按键'+' |
KEYCODE_NUMPAD_SUBTRACT | 小键盘按键'-' |
KEYCODE_NUMPAD_MULTIPLY | 小键盘按键'*' |
KEYCODE_NUMPAD_DIVIDE | 小键盘按键'/' |
KEYCODE_NUMPAD_EQUALS | 小键盘按键'=' |
KEYCODE_NUMPAD_COMMA | 小键盘按键',' |
KEYCODE_NUMPAD_DOT | 小键盘按键'.' |
KEYCODE_NUMPAD_LEFT_PAREN | 小键盘按键'(' |
KEYCODE_NUMPAD_RIGHT_PAREN | 小键盘按键')' |
KEYCODE_NUMPAD_ENTER | 小键盘按键回车 |
功能键
|
|
KEYCODE_F1 | 按键F1 |
KEYCODE_F2 | 按键F2 |
KEYCODE_F3 | 按键F3 |
KEYCODE_F4 | 按键F4 |
KEYCODE_F5 | 按键F5 |
KEYCODE_F6 | 按键F6 |
KEYCODE_F7 | 按键F7 |
KEYCODE_F8 | 按键F8 |
KEYCODE_F9 | 按键F9 |
KEYCODE_F10 | 按键F10 |
KEYCODE_F11 | 按键F11 |
KEYCODE_F12 | 按键F12 |
多媒体键
|
|
KEYCODE_MEDIA_PLAY | 多媒体键 播放 |
KEYCODE_MEDIA_STOP | 多媒体键 停止 |
KEYCODE_MEDIA_PAUSE | 多媒体键 暂停 |
KEYCODE_MEDIA_PLAY_PAUSE | 多媒体键 播放/暂停 |
KEYCODE_MEDIA_FAST_FORWARD | 多媒体键 快进 |
KEYCODE_MEDIA_REWIND | 多媒体键 快退 |
KEYCODE_MEDIA_NEXT | 多媒体键 下一首 |
KEYCODE_MEDIA_PREVIOUS | 多媒体键 上一首 |
KEYCODE_MEDIA_CLOSE | 多媒体键 关闭 |
KEYCODE_MEDIA_EJECT | 多媒体键 弹出 |
KEYCODE_MEDIA_RECORD | 多媒体键 录音 |
手柄按键
|
|
KEYCODE_BUTTON_1 | 通用游戏手柄按钮#1 |
KEYCODE_BUTTON_2 | 通用游戏手柄按钮 #2 |
KEYCODE_BUTTON_3 | 通用游戏手柄按钮 #3 |
KEYCODE_BUTTON_4 | 通用游戏手柄按钮 #4 |
KEYCODE_BUTTON_5 | 通用游戏手柄按钮 #5 |
KEYCODE_BUTTON_6 | 通用游戏手柄按钮 #6 |
KEYCODE_BUTTON_7 | 通用游戏手柄按钮 #7 |
KEYCODE_BUTTON_8 | 通用游戏手柄按钮 #8 |
KEYCODE_BUTTON_9 | 通用游戏手柄按钮 #9 |
KEYCODE_BUTTON_10 | 通用游戏手柄按钮 #10 |
KEYCODE_BUTTON_11 | 通用游戏手柄按钮 #11 |
KEYCODE_BUTTON_12 | 通用游戏手柄按钮 #12 |
KEYCODE_BUTTON_13 | 通用游戏手柄按钮 #13 |
KEYCODE_BUTTON_14 | 通用游戏手柄按钮 #14 |
KEYCODE_BUTTON_15 | 通用游戏手柄按钮 #15 |
KEYCODE_BUTTON_16 | 通用游戏手柄按钮 #16 |
KEYCODE_BUTTON_A | 游戏手柄按钮 A |
KEYCODE_BUTTON_B | 游戏手柄按钮 B |
KEYCODE_BUTTON_C | 游戏手柄按钮 C |
KEYCODE_BUTTON_X | 游戏手柄按钮 X |
KEYCODE_BUTTON_Y | 游戏手柄按钮 Y |
KEYCODE_BUTTON_Z | 游戏手柄按钮 Z |
KEYCODE_BUTTON_L1 | 游戏手柄按钮 L1 |
KEYCODE_BUTTON_L2 | 游戏手柄按钮 L2 |
KEYCODE_BUTTON_R1 | 游戏手柄按钮 R1 |
KEYCODE_BUTTON_R2 | 游戏手柄按钮 R2 |
KEYCODE_BUTTON_MODE | 游戏手柄按钮 Mode |
KEYCODE_BUTTON_SELECT | 游戏手柄按钮 Select |
KEYCODE_BUTTON_START | 游戏手柄按钮 Start |
KEYCODE_BUTTON_THUMBL | Left Thumb Button |
KEYCODE_BUTTON_THUMBR | Right Thumb Button |
待查
KEYCODE_NUM |
按键Number modifier |
KEYCODE_INFO |
按键Info |
按键App switch |
|
KEYCODE_BOOKMARK |
按键Bookmark |
KEYCODE_AVR_INPUT |
按键A/V Receiver input |
KEYCODE_AVR_POWER |
按键A/V Receiver power |
KEYCODE_CAPTIONS |
按键Toggle captions |
KEYCODE_CHANNEL_DOWN |
按键Channel down |
KEYCODE_CHANNEL_UP |
按键Channel up |
KEYCODE_CLEAR |
按键Clear |
KEYCODE_DVR |
按键DVR |
KEYCODE_ENVELOPE |
按键Envelope special function |
KEYCODE_EXPLORER |
按键Explorer special function |
KEYCODE_FORWARD |
按键Forward |
KEYCODE_FORWARD_DEL |
按键Forward Delete |
KEYCODE_FUNCTION |
按键Function modifier |
KEYCODE_GUIDE |
按键Guide |
KEYCODE_HEADSETHOOK |
按键Headset Hook |
KEYCODE_META_LEFT |
按键Left Meta modifier |
KEYCODE_META_RIGHT |
按键Right Meta modifier |
KEYCODE_PICTSYMBOLS |
按键Picture Symbols modifier |
KEYCODE_PROG_BLUE |
按键Blue “programmable” |
KEYCODE_PROG_GREEN |
按键Green “programmable” |
KEYCODE_PROG_RED |
按键Red “programmable” |
KEYCODE_PROG_YELLOW |
按键Yellow “programmable” |
KEYCODE_SETTINGS |
按键Settings |
KEYCODE_SOFT_LEFT |
按键Soft Left |
KEYCODE_SOFT_RIGHT |
按键Soft Right |
KEYCODE_STB_INPUT |
按键Set-top-box input |
KEYCODE_STB_POWER |
按键Set-top-box power |
KEYCODE_SWITCH_CHARSET |
按键Switch Charset modifier |
KEYCODE_SYM |
按键Symbol modifier |
KEYCODE_SYSRQ |
按键System Request / Print Screen |
KEYCODE_TV |
按键TV |
KEYCODE_TV_INPUT |
按键TV input |
KEYCODE_TV_POWER |
按键TV power |
KEYCODE_WINDOW |
按键Window |
KEYCODE_UNKNOWN |
未知按键 |
adb 命令模拟按键事件 模拟 点击 事件的更多相关文章
-
Android代码模拟物理、屏幕点击事件
一.应用中模拟物理和屏幕点击事件 例如,模拟对某个view的点击事件 private void simulateClick(View view, float x, float y) { long do ...
-
JS怎样将拖拉事件与点击事件分离?
帖子:http://bbs.csdn.net/topics/390785395?page=1#post-397369340 怎样将拖拉事件跟点击事件分离? 须要做到:拖拉时不触动点击事件 <ht ...
-
(网页)HTML5 Canvas ( 事件交互, 点击事件为例 ) isPointInPath(转)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
-
HTML5 Canvas ( 事件交互, 点击事件为例 ) isPointInPath
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
-
[前端][自定义DOM事件]不使用setTimeout实现双击事件或n击事件
使用setTimeout实现双击事件 例如,这样: let div = document.getElementById("div"); doubleClick(div, funct ...
-
Webbrowser模拟百度一下子点击事件
Webbrowser模拟百度一下点击事件新建一个form,有一个button和一个webbrowser控件.然后webbrowser一开始加载的就是百度主页.然后在文本框里输入点东西,如何做到点击bu ...
-
Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
今天在做demo时,须要设置ListView的item的长按和点击事件.OnItemLongClickListener和OnItemClickListener,然而点击事件能够实现,可是在长按操作时会 ...
-
Android长按事件和点击事件 冲突问题
长按点击的时候默认会触发点击事件,android系统是优先点击的,并且没有返回值:而长按事件是有返回值的,如果返回false,两个事件都会有响应,如果返回true则只响应长按事件.
-
threejs Object的点击(鼠标)事件(获取点击事件的object)
objects=[]; raycaster = new THREE.Raycaster(); mouse = new THREE.Vector2(); //监听全局点击事件,通过ray检测选中哪一个o ...
-
input中blur失去焦点事件与点击事件冲突时如何解决
方法一 使用setTimeout $(function(){ $(".cy-name-input input").on({ focus:function() { $(". ...
随机推荐
-
理解 Node.js 里的 process.nextTick()
有很多人对Node.js里process.nextTick()的用法感到不理解,下面我们就来看一下process.nextTick()到底是什么,该如何使用. Node.js是单线程的,除了系统IO之 ...
-
Python爬虫入门案例:获取百词斩已学单词列表
百词斩是一款很不错的单词记忆APP,在学习过程中,它会记录你所学的每个单词及你答错的次数,通过此列表可以很方便地找到自己在记忆哪些单词时总是反复出错记不住.我们来用Python来爬取这些信息,同时学习 ...
-
ThinkPHP 源码分析之常量 IS_AJAX
在控制器中判断请求是否是通过 AJAX 提交,ThinkPHP(3.2.2)中在 ThinkPHP/Library/Think/App.class.php (Line:49) 中定义了常量 IS_AJ ...
-
leetcode 116- Populating Next Right Pointers in Each Node
题目: Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode ...
-
解决fonts.gstatic.com无法访问
最近很多google的服务又在大陆地区受限了,原因不做过多讨论.屏蔽这些服务不仅仅意味着gmail,谷歌学术等方便的工具使用受到限制,更意味着很多寄托于google的web服务无法使用.wordpre ...
-
Foreach语法
先看例子: Random rand = new Random(47); float f[] = new float[10]; for(int i = 0; i < 10; i++){ f[i] ...
-
DHCP 协议的 8 种消息类型及功能服务器
1) 主机发送 DHCP Discover 广播包在网络上寻找 DHCP 服务器: 单播数据包, 地址. 2) DHCP 服务器向主机发送 DHCP Offer 单播数据包,包含 IP 地址.MAC ...
-
POJ - 1984 Navigation Nightmare 种类并查集
思路:记录每个点与其根结点的横向距离和纵向距离,当知道其父节点与根结点的关系,很容易推出当前节点与根结点的关系: 直接相加即可. int p = a[x].par; a[x].dx += a[p].d ...
-
python线程之condition
cond = threading.Condition() # 类似lock.acquire() cond.acquire() # 类似lock.release() cond.release() # 等 ...
-
2018-2019-1 20189206 《Linux内核原理与分析》第四周作业
linux内核分析学习笔记 --第三章 MenuOS的构造 计算机的"三大法宝"和操作系统的"两把宝剑" 三大法宝 程序存储计算机 即冯诺依曼体系结构,基本上是 ...