adb shell按键操作(input keyevent)
前言:input keyeven操作发送手机上常用的一些按键操作
一、keyevent事件对应数字
电话键
- KEYCODE_CALL: 拨号键
- KEYCODE_ENDCALL: 挂机键
- KEYCODE_HOME: 按键Home
- KEYCODE_MENU: 菜单键
- KEYCODE_BACK: 返回键
- KEYCODE_SEARCH: 搜索键
- KEYCODE_CAMERA: 拍照键
- KEYCODE_FOCUS: 拍照对焦键
- KEYCODE_POWER: 电源键
- KEYCODE_NOTIFICATION: 通知键
- KEYCODE_MUTE: 话筒静音键
- KEYCODE_VOLUME_MUTE: 扬声器静音键
- KEYCODE_VOLUME_UP: 音量增加键
- KEYCODE_VOLUME_DOWN: 音量减小键
控制键
- KEYCODE_ENTER: 回车键
- KEYCODE_ESCAPE: ESC键
- KEYCODE_DPAD_CENTER: 导航键 确定键
- KEYCODE_DPAD_UP: 导航键 向上
- KEYCODE_DPAD_DOWN: 导航键 向下
- KEYCODE_DPAD_LEFT: 导航键 向左
- KEYCODE_DPAD_RIGHT: 导航键 向右
- KEYCODE_MOVE_HOME: 光标移动到开始键
- KEYCODE_MOVE_END: 光标移动到末尾键
- KEYCODE_PAGE_UP: 向上翻页键
- KEYCODE_PAGE_DOWN: 向下翻页键
- KEYCODE_DEL: 退格键
- KEYCODE_FORWARD_DEL: 删除键
- KEYCODE_INSERT: 插入键
- KEYCODE_TAB: Tab键
- KEYCODE_NUM_LOCK: 小键盘锁
- KEYCODE_CAPS_LOCK: 大写锁定键
- KEYCODE_BREAK: Break/Pause键
- KEYCODE_SCROLL_LOCK: 滚动锁定键
- KEYCODE_ZOOM_IN: 放大键
- KEYCODE_ZOOM_OUT: 缩小键
每个数字与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"
2、实现back键。打开cmd输入指令
# 方法一:
> adb shell input keyevent KEYCODE_BACK # 方法二:
> adb shell input keyevent 4
3、下面封装keyevent事件放入common模块供调用
#coding:utf-8
import os class Event():
'''常用keyevent事件'''
KEYCODE_HOME = 3 # home键
KEYCODE_MENU = 82 # menu键
KEYCODE_BACK = 4 # back键
KEYCODE_POWER = 26 # power键
KEYCODE_DPAD_UP = 19 # 向上
KEYCODE_DPAD_DOWN = 20 # 向下
KEYCODE_DPAD_LEFT = 21 # 向左
KEYCODE_DPAD_RIGHT = 22 # 向右
KEYCODE_NOTIFICATION = 83 # 解锁 # 点击返回键
def back(keyname=Event.KEYCODE_BACK):
' 执行adb keyevent事件 参数从Event类里面关联'
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # 点击home键
def home(keyname = Event.KEYCODE_HOME):
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # 点击菜单键
def menu(keyname= Event.KEYCODE_MENU):
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # 按一下电源键
def power(keyname=Event.KEYCODE_POWER):
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # 向上滑动
def up(keyname = Event.KEYCODE_DPAD_UP):
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # 向下滑动
def down(keyname = Event.KEYCODE_DPAD_DOWN):
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # 向左滑动
def left(keyname= Event.KEYCODE_DPAD_LEFT):
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # 向右滑动
def right(keyname= Event.KEYCODE_DPAD_RIGHT):
adb = 'adb shell input keyevent %s' % keyname
os.system(adb) # adb也可以输入文本
def input_text(text):
u'adb输入是text文本,不支持中文'
adb = 'adb shell input text %s' % text
os.system(adb) if __name__=='__main__':
back()
back()
adb shell按键操作(input keyevent)的更多相关文章
- appium+python自动化-adb shell按键操作(input keyevent)
前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两 ...
- appium+python自动化38-adb shell按键操作(input keyevent)
前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两 ...
- appium+python自动化 adb shell按键操作
前言 接着上篇介绍input里面的按键操作keyevent事件,发送手机上常用的一些按键操作 keyevent 1.keyevent事件有一张对应的表,可以直接发送对应的数字,也可以方式字符串,如下两 ...
- appium+python自动化-adb shell模拟点击事件(input tap)
前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其 ...
- Android 测试 之adb shell
一.发送键盘事件: 命令格式1:adb shell input keyevent "value" 其中value以及对应的key code如下表所列: KeyEvent Value ...
- Android查询:模拟键盘鼠标事件(adb shell 实现)
1. 发送键盘事件: 命令格式1:adb shell input keyevent “value” 其中value以及对应的key code如下表所列: KeyEvent Value KEYCODE ...
- 我的Android进阶之旅------>Android中通过adb shell input来模拟滑动、按键、点击事件
今天在维护公司的一个小项目的时候,发现按公司手机的某个物理按键,激活相应的Service后,会在屏幕上模拟的点击了屏幕的某个坐标点.好家伙,原来是之前该项目的版本是按这个物理按键后,会弹出一个对话框, ...
- adb shell input keyevent code详解
adb shell input keyevent 7 # for key '0' adb shell input keyevent 8 # for key '1' adb shell input ke ...
- adb shell命令模拟按键/输入input使用keycode 列表详解
在adb shell里有一个非常使用的命令,模拟按键输入,这里首先不要理解为是键盘的模拟按键,下面命令的使用和键值做一个详解. input命令格式 adb shell input keyevent & ...
随机推荐
- codeforces547a
http://codeforces.com/contest/547/problem/A 题意:确定是否在某一时刻高度都同时为a1和a2. step1:找到青蛙首次到a1的时间pri1以及重复到a1的周 ...
- Vue自动化工具(Vue-CLI)的安装
安装VUM 前面学习了普通组件以后,接下来我们继续学习单文件组件则需要提前先安装准备一些组件开发工具.否则无法使用和学习单文件组件. 一般情况下,单文件组件,我们运行在 自动化工具vue-CLI中,可 ...
- python基础之字典以及增删改查
字典:字典是python中唯一的一个映射类型,主要形式为 dic = {key1:value,key2:value2,....} 字典中key的值是唯一的,主要关系到HASH算法,并且key的值必须是 ...
- python记录_day18 反射 判断函数与方法
一.三个内置函数 1.issubclass(a, b) 判断a类是否是b类的子类 class Foo: pass class Zi(Foo): pass class Sun(Zi): pass pr ...
- 两个约束下的dp问题
洛谷P1510 分析:本质上还是一个01背包,将体力当做重量,体积当做价值.配上滚动数组 即dp[j]代表在体力耗费为j时最大能搬运多少体积的石头,当dp[j]>v时就说明存在满足情况的解,这样 ...
- 【MySQL】【4】数据库时间与实际时间相差8小时
原因:由于默认的是UTC时间,所以在中国有8个小时的时差,需要将serverTimezone的值改为GMT%2B8 spring: datasource: url: jdbc:mysql://172. ...
- React Native之FlexBox布局
参考原文链接:https://www.cnblogs.com/wujy/p/5841685.html 弹性盒模型(The Flexible Box Module),又叫Flexbox,意为“弹性布局” ...
- set集合深浅拷贝以及知识补充
一. 对之前的知识点进行补充. 1. str中的join方法. 把列表转换成字符串 li = ["李嘉诚", "麻花藤", "黄海峰", & ...
- noip2014生活大爆炸版石头剪刀布
题目描述 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一 样,则不分胜负.在<生活大爆炸>第二季第8集中出现了一种石头剪刀布的升级版游戏. 升级版游戏在传统的 ...
- Python print打印
1.Python运算符: +:加 -:减 *:乘 /:除以 %:去除法后的余数 //:取整除 2.字符串center方法: a='111'print(a.center(4,'2')) #让字符串占位 ...