जवाबों:
द्वारा adb shell input keyevent
, या तो एक event_code
या string
डिवाइस के लिए भेजा जाएगा।
usage: input [text|keyevent]
input text <string>
input keyevent <event_code>
इसके लिए कुछ संभावित मान event_code
हैं:
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"
sendevent
उपयोगिता स्पर्श या कीबोर्ड की घटनाओं, साथ ही हार्डवेयर घटनाओं का अनुकरण के लिए अन्य घटनाओं भेजता है। विवरण के लिए इस लेख का संदर्भ लें: Android, निम्न स्तर स्क्रीन पर क्लिक करें ।
>adb shell input text "a b"
लेकिन काम नहीं करता।
अद्यतन कर रहा है:
का उपयोग कर adb shell input
:
टेक्स्ट डालें:
adb shell input text "insert%syour%stext%shere"
(अवलोकन:% s का अर्थ है SPACE)
..
घटना कोड:
adb shell input keyevent 82
(82 ---> MENU_BUTTON)
"अधिक कुंजी कोड के लिए नीचे दी गई सूची देखें"
..
ठोकर एक्स, वाई स्थिति:
adb shell input tap 500 1450
सटीक X खोजने के लिए, Y स्थिति जिस पर आप टैप करना चाहते हैं:
सेटिंग> डेवलपर विकल्प> विकल्प की जांच करें विकल्प
..
स्वाइप X1 Y1 X2 Y2 [अवधि (ms)]:
adb shell input swipe 100 500 100 1450 100
इस उदाहरण में X1 = 100, Y1 = 500, X2 = 100, Y2 = 1450, अवधि = 100ms
..
LongPress XY:
adb shell input swipe 100 500 100 500 250
हम लंबे प्रेस का अनुकरण करने के लिए एक ही कमांड का उपयोग स्वाइप के लिए करते हैं
इस उदाहरण में X = 100, Y = 500, अवधि = 250ms
..
इवेंट कोड अपडेट की गई सूची:
0 --> "KEYCODE_0"
1 --> "KEYCODE_SOFT_LEFT"
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 --> "KEYCODE_MEDIA_PLAY_PAUSE"
86 --> "KEYCODE_MEDIA_STOP"
87 --> "KEYCODE_MEDIA_NEXT"
88 --> "KEYCODE_MEDIA_PREVIOUS"
89 --> "KEYCODE_MEDIA_REWIND"
90 --> "KEYCODE_MEDIA_FAST_FORWARD"
91 --> "KEYCODE_MUTE"
92 --> "KEYCODE_PAGE_UP"
93 --> "KEYCODE_PAGE_DOWN"
94 --> "KEYCODE_PICTSYMBOLS"
...
122 --> "KEYCODE_MOVE_HOME"
123 --> "KEYCODE_MOVE_END"
आदेशों की पूरी सूची यहां पाई जा सकती है: http://developer.android.com/reference/android/view/KeyEvent.html
adb shell input swipe 200 800 200 400 200
इसके अलावा, यदि आप इनपुट कमांड के साथ एम्बेडेड स्पेस भेजना चाहते हैं, तो% s का उपयोग करें
adb shell input text 'this%sis%san%sexample'
निकलेगा
this is an example
इनपुट किया जा रहा है।
%
खुद को भागने की जरूरत नहीं है - केवल विशेष %s
जोड़ी को विशेष रूप से व्यवहार किया जाता है। यह पाठ्यक्रम के स्पष्ट प्रश्न की ओर जाता है कि शाब्दिक स्ट्रिंग कैसे दर्ज करें %s
... जो आपको दो अलग-अलग कमांडों के साथ करना होगा।
atext "Hey, I'm here"
और यह काम करता है।
वैसे, यदि आप डिवाइस पर दोहरे उद्धरण चिह्नों को भेजने का एक तरीका खोजने की कोशिश कर रहे हैं, तो निम्न प्रयास करें:
adb शेल इनपुट टेक्स्ट '\ "
मुझे यकीन नहीं है कि उद्धरणों के लिए कोई ईवेंट कोड क्यों नहीं है, लेकिन यह समाधान कार्य करता है। इसके अलावा, अगर आप मंकीडेवाइस (या चिम्पचैट) का उपयोग कर रहे हैं, तो आपको मंकीडेवाइस टाइप करने से पहले प्रत्येक बैक्टीरिया का परीक्षण करना चाहिए, अन्यथा जब आप भेजने की कोशिश करते हैं तो आपको कुछ नहीं मिलता है।
atext "Hey, I'm here"
और यह काम करता है।
एक अन्य अंतर:
AOSP फ्रेमवर्क में अधिक विस्तार कोड ट्रेस यहां पाया जा सकता है:
http://www.srcmap.org/sd_share/4/aba57bc6/AOSP_adb_shell_input_Code_Trace.html#RefId=7c8f5285
मैंने शेल उपयोगकर्ताओं को शेल इनपुट ईवेंट्स की चाबियाँ मैप करने के लिए विंडोज़ उपयोगकर्ताओं के लिए एक सरल पॉवर्सशेल स्क्रिप्ट लिखी। और लैन पर दूरस्थ रूप से एक एंड्रॉइड डिवाइस को नियंत्रित करता है। मुझे नहीं पता कि किसी को यह उपयोगी लगता है, लेकिन मैं इसे वैसे भी साझा करूँगा।
$ip = 192.168.1.8
cd D:\Android\android-sdk-windows\platform-tools\; .\adb.exe disconnect $ip; .\adb.exe connect $ip
$adbKeyNum = @{LeftWindows = "1"; F1 = "3"; Enter = "66"; UpArrow = "19"; DownArrow = "20"; LeftArrow = "21"; RightArrow = "22"; Add = "24";
Subtract = "25"; Backspace = "4"; P = "26"}
while(1 -eq 1){
$keyPress = [Console]::ReadKey($true).Key
if ([string]$keyPress -eq "F10"){
.\adb.exe disconnect $ip
exit
}
elseif ([string]$keyPress -eq "F6"){
$string = Read-Host -Prompt 'Input the string: '
.\adb.exe shell input text $string
}
elseif ($adbKeyNum.ContainsKey([string]$keyPress)){
echo $adbKeyNum.Get_Item([string]$keyPress)
.\adb.exe shell input keyevent $adbKeyNum.Get_Item([string]$keyPress)
}
}
यदि आप कई डिवाइस कनेक्ट होने पर विशिष्ट डिवाइस पर एक पाठ भेजना चाहते हैं। सबसे पहले एडीबी उपकरणों का उपयोग कर संलग्न उपकरणों के लिए देखो
adb devices
List of devices attached
3004e25a57192200 device
31002d9e592b7300 device
फिर अपनी विशिष्ट डिवाइस आईडी प्राप्त करें और निम्नलिखित का प्रयास करें
adb -s 31002d9e592b7300 shell input text 'your text'