Apa perbedaan mendasar antara adb shell input keyevent
dan adb shell sendevent
? Mana yang harus saya gunakan untuk memasukkan karakter? Apakah kode kunci sama dengan yang kita berikan pada kedua perintah?
222
Oleh adb shell input keyevent
, salah satu event_code
atau string
akan dikirim ke perangkat.
usage: input [text|keyevent]
input text <string>
input keyevent <event_code>
Beberapa nilai yang mungkin untuk event_code
adalah:
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"
The sendevent
utilitas mengirimkan sentuh atau keyboard peristiwa, serta acara-acara lain untuk mensimulasikan peristiwa hardware. Lihat artikel ini untuk detail: Android, klik tingkat rendah shell di layar .
>adb shell input text "a b"
tetapi tidak berhasil.Memperbarui:
Menggunakan
adb shell input
:..
..
..
..
..
sumber
adb shell input swipe 200 800 200 400 200
Juga, jika Anda ingin mengirim ruang yang disematkan dengan perintah input, gunakan% s
akan menghasilkan
menjadi input.
%
itu sendiri tidak perlu melarikan diri - hanya%s
pasangan khusus yang diperlakukan secara khusus. Ini tentu saja mengarah pada pertanyaan yang jelas tentang bagaimana memasukkan string literal%s
... yang harus Anda lakukan dengan dua perintah terpisah.sumber
atext "Hey, I'm here"
dan berhasil.Omong-omong, jika Anda mencoba menemukan cara untuk mengirim tanda kutip ganda ke perangkat, coba yang berikut ini:
Saya tidak yakin mengapa tidak ada kode acara untuk penawaran, tetapi solusi ini berhasil. Juga, jika Anda menggunakan MonkeyDevice (atau ChimpChat), Anda harus menguji setiap caracter sebelum memanggil monkeyDevice.type, jika tidak, Anda tidak akan mendapatkan apa-apa saat Anda mencoba mengirim "
sumber
atext "Hey, I'm here"
dan itu berhasil.Satu perbedaan lain:
Pelacakan kode lebih detail ke dalam AOSP Framework dapat ditemukan di sini:
http://www.srcmap.org/sd_share/4/aba57bc6/AOSP_adb_shell_input_Code_Trace.html#RefId=7c8f5285
sumber
Saya menulis script Powershell sederhana untuk pengguna windows untuk memetakan kunci untuk adb shell input events. Dan mengendalikan perangkat Android dari jarak jauh melalui LAN. Saya tidak tahu apakah ada yang menemukan itu berguna, tetapi saya akan membagikannya.
sumber
Jika Anda ingin mengirim teks ke perangkat tertentu ketika beberapa perangkat terhubung. Pertama mencari perangkat yang terpasang menggunakan perangkat adb
kemudian dapatkan id perangkat spesifik Anda dan coba yang berikut ini
sumber
Untuk mengirim panggilan ulang ke aplikasi React-Native yang berjalan di perangkat android:
adb shell input keyboard text "rr"
sumber