এডিবি শেল ইনপুট ইভেন্টগুলি


221

adb shell input keyeventএবং এর মধ্যে মূল পার্থক্য কী adb shell sendevent? একটি চরিত্র ইনপুট জন্য আমার কোনটি ব্যবহার করা উচিত? কীকোডগুলি একই, যা আমরা উভয় কমান্ডেই পাস করি?

উত্তর:


417

দ্বারা 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উপযোগ স্পর্শ বা কীবোর্ড ঘটনা, সেইসাথে হার্ডওয়্যার ঘটনা simulating জন্য অন্যান্য ঘটনা পাঠায়। বিশদগুলির জন্য এই নিবন্ধটি দেখুন: অ্যান্ড্রয়েড, স্ক্রিনে নিম্ন স্তরের শেল ক্লিক করুন


1
হাই @ চ্যাচেন্টং! "ইনপুট পাঠ্য <স্ট্রিং>" আরও বিস্তারিত উপায়ে ব্যাখ্যা করে যে কোনও জায়গার দিকে ইশারা দিয়ে আপনি আমাকে দয়া করে সহায়তা করতে পারেন? বিকাশকারী ও অ্যান্ড্রয়েড / রেফারেন্স / অ্যান্ড্রয়েড / ভিউ / কেএভেন্ট html এর মতো এটি সম্পর্কে আমি কিছুই খুঁজে পাচ্ছি না ! ধন্যবাদ!
stanult

ওহে! আমি কী জিজ্ঞাসা করতে পারি যে আমি উইন্ডোজ কমান্ড লাইনের কনসোলের স্পেস সহ স্ট্রিংটি প্রবেশ করতে পারি? আমি প্রবেশ করার চেষ্টা করি >adb shell input text "a b"কিন্তু কাজ হয় না।
ওয়েই ইয়াং

1
"ইনপুট" কমান্ডের তথ্য আপনি কোথায় পেয়েছেন? ডকুমেন্টেশন থেকে কী কী অন্যান্য বৈশিষ্ট্য লুকানো আছে (এখানে: developer.android.com/tools/help/adb.html )?
অ্যান্ড্রয়েড বিকাশকারী

4
@ ওয়েইয়াং, এটি চেষ্টা করে দেখুন,> অ্যাডবি শেল ইনপুট পাঠ্য "একটি%
এসবি

3
যখন আমার অ্যান্ড্রয়েড ট্যাবলেটটির স্ক্রিনটি ভেঙে যায় এবং এটি স্পর্শগুলিতে সাড়া দেয় না তখন এই পোস্টটি খুব সহায়ক হয়েছিল। আমি অ্যাডবি শেল ইনপুট কীভেন্ট ব্যবহার করে পিনটি "টাইপ" করতে সক্ষম হয়েছি এবং আমার চারপাশের পথটি সন্ধান করতে সক্ষম হয়েছি। ধন্যবাদ!
j0aqu1n

194

আপডেট করা হচ্ছে:

ব্যবহার adb shell input:

পাঠ্য প্রবেশ করান:

adb shell input text "insert%syour%stext%shere"

(obs:% s এর অর্থ স্পেস)

..

ইভেন্ট কোডগুলি:

adb shell input keyevent 82

(82 ---> MENU_BUTTON)

"আরও কীভেন্টস কোডের জন্য নীচের তালিকাটি দেখুন"

..

এক্স, ওয়াই অবস্থানটি আলতো চাপুন:

adb shell input tap 500 1450

সঠিক এক্স, ওয়াই অবস্থানটি সন্ধান করতে আপনি এখানে আলতো চাপতে চান:

সেটিংস> বিকাশকারী বিকল্পসমূহ> বিকল্প পয়েন্টার স্লোকেশন চেক করুন

..

সোয়াইপ X1 Y1 X2 Y2 [সময়কাল (এমএস)]:

adb shell input swipe 100 500 100 1450 100

এই উদাহরণে X1 = 100, Y1 = 500, X2 = 100, Y2 = 1450, সময়কাল = 100ms

..

লংপ্রেস এক্সওয়াই:

adb shell input swipe 100 500 100 500 250

আমরা একটি দীর্ঘ প্রেস অনুকরণ করার জন্য সোয়াইপের জন্য একই কমান্ডটি ব্যবহার করি

এই উদাহরণে এক্স = 100, ওয়াই = 500, সময়কাল = 250 মিমি

..

ইভেন্ট কোড আপডেট তালিকা:

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/references/android/view/KeyEvent.html


1
এই তালিকাটি পরবর্তী অ্যান্ড্রয়েড সংস্করণগুলির জন্য স্পষ্টতই দীর্ঘতর, উদাহরণস্বরূপ ৪.২.২ এর জন্য আমরা এগুলি android.view.KeyEvent.java এ খুঁজে পেতে পারি , যেখানে তাদের সংখ্যা 219।
not2qubit

সোয়াইপ কমান্ডের জন্য ধন্যবাদ, আমি এটি অনেক সন্ধান করছিলাম।
ডেভিড

বিকাশকারী বিকল্পগুলিতে, স্পর্শ ইভেন্টগুলি ইনপুট দেওয়ার সময় সঠিক স্থানাঙ্কগুলি নির্ধারণ করতে "পয়েন্টার অবস্থান" সক্ষম করুন।
ডিক লুকাস

শুধু অতিরিক্ত তথ্যের জন্য। সময়টি 120 এর চেয়ে বেশি হলে সোয়াইপ কেবল আমার ফোনে কাজ করত! adb shell input swipe 200 800 200 400 200
জোসে রডরিগস

74

এছাড়াও, আপনি যদি ইনপুট কমান্ডের সাথে এম্বেড করা স্পেসগুলি প্রেরণ করতে চান তবে% s ব্যবহার করুন

adb shell input text 'this%sis%san%sexample'   

ফলন হবে

this is an example 

ইনপুট হচ্ছে।

%নিজেই পালানোর দরকার নেই - কেবল বিশেষ %sজুটির সাথে বিশেষভাবে চিকিত্সা করা হয়। এটি অবশ্যই আক্ষরিক স্ট্রিংয়ের মধ্যে কীভাবে প্রবেশ করবে তার সুস্পষ্ট প্রশ্নের দিকে নিয়ে যায় %s... যা আপনাকে দুটি পৃথক কমান্ড দিয়ে করতে হবে।


এখানে অটো সংশোধন করার কোনও উপায়? অন্যথায় দুর্দান্ত কাজ করে :)
প্যাট্রিক বুস

পালানোর যত্ন নেওয়ার জন্য এখানে একটি সরল বাশ স্ক্রিপ্ট রয়েছে , যাতে আপনি কেবল বলতে পারেন atext "Hey, I'm here"এবং এটি কার্যকর হয়।
ড্যান ড্যাসক্লেস্কু

12

যাইহোক, আপনি যদি ডিভাইসে ডাবল উদ্ধৃতি প্রেরণের কোনও উপায় অনুসন্ধান করার চেষ্টা করছেন তবে নিম্নলিখিত চেষ্টা করুন:

অ্যাডবি শেল ইনপুট পাঠ্য '\ "'

আমি নিশ্চিত না কেন কোটের জন্য কোনও ইভেন্ট কোড নেই, তবে এই কর্মটি কাজটি করে। এছাড়াও, আপনি যদি মোনার ডিভাইস (বা চিম্প চ্যাট) ব্যবহার করে থাকেন তবে বানর ডেভিস.টাইপ চালানোর আগে আপনার প্রতিটি ক্যারাকটার পরীক্ষা করা উচিত, অন্যথায় আপনি যখন পাঠানোর চেষ্টা করবেন তখন কিছুই পাবেন না "


1
সমস্ত পালানোর বিষয়ে যত্ন নিতে আমি একটি সাধারণ বাশ স্ক্রিপ্ট তৈরি করেছি , যাতে আপনি কেবল বলতে পারেন atext "Hey, I'm here"এবং এটি কার্যকর হয়।
ড্যান ড্যাসক্লেস্কু

9

অন্য একটি পার্থক্য:

  • " অ্যাডবি শেল ইনপুট " অ্যান্ড্রয়েড ফ্রেমওয়ার্কের জাভা স্তর থেকে কীকোড প্রক্রিয়াকরণ এবং প্রেরণের জন্য ইনপুট.জারকে কল করছে।
  • " অ্যাডবি প্রেরণকারী " আসলে সি কোড (টুলবক্স ইউটিলিটির অংশ) যা ইনপুট কোডটি সরাসরি লিনাক্স ইনপুট সাবসিস্টেমের / dev / ইনপুট .... এ প্রেরণ করে।

এওএসপি ফ্রেমওয়ার্কের ভিতরে আরও বিস্তারিত কোড ট্রেস পাওয়া যাবে এখানে:

http://www.srcmap.org/sd_share/4/aba57bc6/AOSP_adb_shell_input_Code_Trace.html#RefId=7c8f5285


সুতরাং সংক্ষেপে প্রেরকটি অ্যাডবি ইনপুটের চেয়ে অনেক দ্রুত!
জেরিওয়েল

7

আমি উইন্ডোজ ব্যবহারকারীদের শেল ইনপুট ইভেন্টগুলির অ্যাডাবির জন্য কীগুলি ম্যাপ করার জন্য একটি সাধারণ পাওয়ারশেল স্ক্রিপ্ট লিখেছিলাম। এবং ল্যানের মাধ্যমে দূরবর্তীভাবে একটি অ্যান্ড্রয়েড ডিভাইস নিয়ন্ত্রণ করুন। কেউ এটি কার্যকরভাবে খুঁজে পেয়েছে কিনা তা আমি জানি না তবে আমি তা যাইহোক ভাগ করে নেব।

$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)
    }
}

4

আপনি যদি একাধিক ডিভাইস সংযুক্ত থাকে তবে নির্দিষ্ট ডিভাইসে কোনও পাঠ্য পাঠাতে চান। অ্যাডাব ডিভাইস ব্যবহার করে সংযুক্ত ডিভাইসগুলির জন্য প্রথমে সন্ধান করুন

adb devices
List of devices attached
3004e25a57192200        device
31002d9e592b7300        device

তারপরে আপনার নির্দিষ্ট ডিভাইস আইডি পান এবং নিম্নলিখিতটি চেষ্টা করুন

adb -s 31002d9e592b7300 shell input text 'your text'

এটি আপনার% পাঠ্য হওয়া উচিত
রোয়াতিরেক

2

অ্যান্ড্রয়েড ডিভাইসে চলমান একটি প্রতিক্রিয়া-নেটিভ অ্যাপ্লিকেশনটিতে একটি পুনরায় লোড কল প্রেরণ করতে: adb shell input keyboard text "rr"

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.