Sending keyboard input via ADB to your android device

Say you are writing an Appium test for Android and you are required to interact with native Android keyboard. Let’s take a test scenario
  • Launch the application
  • Tap on the Search bar/box/button
  • Enter the search term
  • Tap on Enter key on native Android keyboard.
How would you do this? We will focus on the last action of tapping “Enter” key on Android keyboard.
It could be simply done by using something called “SendKeyEvent”
driver.sendKeyEvent(key);

Now, how do you know about the key you want to pass to “SendKeyEvent”? Below is the list (table) of keys for your reference.

To verify that it works in your script, you can check them using ADB. Assuming you have your Android SDK properly installed and configured, you can do the following.
  • Open command prompt (on windows)
  • Use command “adb devices” to make sure that the devices you want to interact with is available in the list returned by adb
  • Then you can endter “adb shell input keyevent <keycode>” use <keycode> from the below table as per your requirements
Example: adb shell input keyevent 3 will PRESS the Home button
Example: adb shell input keyevent “KEYCODE_HOME” will PRESS the Home button
You can also enter text using ADB shell like the following
Example: adb shell input text “SomeText”
If you want to use spaces in your text, use %s
Example: adb shell input text “Some%sText” will print Some Text using Android keyboard.
Sending keyboard input via ADB to your android device

KeyEvent Code
KeyEvent
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"
Hope you find this article useful. If you have any suggestions, kindly let us know. We would like to hear from you.
Don’t forget to share and comment, if you like the post.

Comments

Popular posts from this blog

Writing first Android test using Appium

Start & Stop Appium Server Programmatically using Java (MAC OSX)