Android(安卓)中代码去模拟人的操作
16lz
2021-01-24
书接上文: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" // 数字 08 --> "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" // 输入 A30 --> "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" // 按下左边的 alt58 --> "KEYCODE_ALT_RIGHT" // 按下右边的 alt59 --> "KEYCODE_SHIFT_LEFT" // 按下左边的 shift60 --> "KEYCODE_SHIFT_RIGHT" // 按下右边的 shift61 --> "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 的方法来实现,需要添加一个删除文字的功能;
更多相关文章
- Android弹出软键盘时如何将底部顶上去
- Android软键盘弹出将底部栏顶上去并不会挤压界面
- Android(安卓)SystemUI源代码分析和修改
- android EditText inputAction后键盘保留和收起问题
- android audio 音量设置分析
- 【Android应用实例之五】调节播放器音量——AudioManager的应用
- Android(安卓)自定义数字键盘(三)自定义输入框
- android输入法中的imeoption
- 安装Termux的手机上运行Python