zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    Windows内存管理系列
    Windows C/C++ 内存泄露检测
    TCP/IP协议学习(六) 链路层详解
    TCP/IP协议学习(五) 基于C# Socket的C/S模型
    TCP/IP协议学习(四) 协议概述
    STM32学习笔记(十) CAN通讯测试(环回模式)
    STM32学习笔记(九) 外部中断,待机模式和事件唤醒
    STM32学习笔记(八) SPI总线(操作外部flash)
    TCP/IP协议学习(三) STM32中ETH驱动配置注意事项
    TCP/IP协议学习(二) LWIP用户自定义配置文件解析
  • 原文地址:https://www.cnblogs.com/guo2733/p/10584891.html
Copyright © 2011-2022 走看看