Android 中代码去模拟人的操作

书接上文: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 的方法来实现,需要添加一个删除文字的功能;

猜你喜欢

转载自blog.csdn.net/chenxiaoping1993/article/details/81562544