Android 中代码去模拟人的操作

2019-04-13 14:19发布

书接上文:Android 手机蓝牙遥控器解决方案 本以为要从底层去修改很多的东西,但是后来发现并没有那么困难:
adb shell 命令可以去模拟人的操作,并且Android 中可以用 Runtime.getRuntime().exec("命令"); 这些命令分为四大类:
1、adb shell input text + 需要输入的文字
例子:选中文本框,当前是输入状态,执行这条命令,文字就自动到文本框中了;
2、adb shell input keyevent + 键值对应的码
例子:键盘的一些操作,还有界面中的返回,home,音量增减等都是以这种方式来体现,后边会贴出不同的按键对应的键值,以便参考;
3、adb shell input tap + 以像素为单位的横纵坐标 // 表示单击该坐标位置
4、adb shell input swipe + 起始位置横纵坐标 + 空格+ 结束位置横纵坐标 // 模拟手指从 起始位置滑动到 结束位置 下边贴出一些常用的键值:(因为板子上一些功能不存在,无法验证是否可用,我会在后边注明) 3 --> "KEYCODE_HOME" // 回到桌面 4 --> "KEYCODE_BACK" // 手机返回键 5 --> "KEYCODE_CALL" // 接电话/打电话(未验证) 6 --> "KEYCODE_ENDCALL" // 结束通话 7 --> "KEYCODE_0" // 数字 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" //键盘上的 ok 键 24 --> "KEYCODE_VOLUME_UP" // 音量增 25 --> "KEYCODE_VOLUME_DOWN" //音量减 26 --> "KEYCODE_POWER" // 在 Rk3288 上代表切断 hdmi 信号,即显示器会显示无信号输入,但其实并没有关机 27 --> "KEYCODE_CAMERA" // 调出 相机(未验证) 28 --> "KEYCODE_CLEAR" // 期望可以清空输入框中的内容,但是没有作用 29 --> "KEYCODE_A" // 输入 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" // 按下左边的 alt 58 --> "KEYCODE_ALT_RIGHT" // 按下右边的 alt 59 --> "KEYCODE_SHIFT_LEFT" // 按下左边的 shift 60 --> "KEYCODE_SHIFT_RIGHT" // 按下右边的 shift 61 --> "KEYCODE_TAB" // 按下 tab 键 62 --> "KEYCODE_SPACE" // 按下空格键 66 --> "KEYCODE_ENTER" // 按下回车键 67 --> "KEYCODE_DEL" // 按下 delete 键(可以删除输入框中的光标前的一位) 71 --> "KEYCODE_LEFT_BRACKET" // 左边中括号 72 --> "KEYCODE_RIGHT_BRACKET" // 右边中括号 73 --> "KEYCODE_BACKSLASH" // 反斜杠 74 --> "KEYCODE_SEMICOLON" // 分号 ; 75 --> "KEYCODE_APOSTROPHE" // 单引号 ' 76 --> "KEYCODE_SLASH" // 斜杠 / 77 --> "KEYCODE_AT" // @ 81 --> "KEYCODE_PLUS" // 加号 + 82 --> "KEYCODE_MENU" // 打开menu菜单,在桌面调出最近任务 遥控器上按键需求:
1、基本需求:
上下左右按键,ok,菜单,返回,关机,home
2、特殊需求:
音量的加减;
3、文字输入:
文字输入,因为adb 方法无法实现模拟同时多个按键,并且尝试多次,无法实现大写字母输入,所以打算采用 input text 的方法来实现,需要添加一个删除文字的功能;