Perangkat keyboard

Android mendukung berbagai perangkat keyboard, termasuk keypad fungsi khusus (kontrol volume dan daya), keyboard QWERTY tersemat yang ringkas, dan keyboard eksternal bergaya PC yang lengkap.

Dokumen ini hanya menjelaskan keyboard fisik. Lihat Android SDK untuk informasi tentang keyboard virtual (Input Method Editor).

Klasifikasi keyboard

Perangkat input diklasifikasikan sebagai keyboard jika salah satu kondisi berikut berlaku:

  • Perangkat input melaporkan keberadaan kode tombol Linux yang digunakan di keyboard termasuk 0 hingga 0xff atau KEY_OK hingga KEY_MAX.

  • Perangkat input melaporkan keberadaan kode tombol Linux yang digunakan pada joystick dan gamepad, termasuk BTN_0 hingga BTN_9, BTN_TRIGGER hingga BTN_DEAD, atau BTN_A hingga BTN_THUMBR.

Joystick saat ini diklasifikasikan sebagai keyboard karena tombol joystick dan gamepad dilaporkan oleh peristiwa EV_KEY dengan cara yang sama seperti tombol keyboard dilaporkan. Dengan demikian, joystick dan gamepad juga menggunakan file peta tombol untuk konfigurasi.

Setelah perangkat input diklasifikasikan sebagai keyboard, sistem akan memuat file konfigurasi perangkat input dan tata letak keyboard untuk keyboard.

Sistem kemudian mencoba menentukan karakteristik tambahan perangkat.

  • Jika perangkat input memiliki tombol yang dipetakan ke KEYCODE_Q, perangkat dianggap memiliki keypad alfabet (bukan numerik). Kemampuan keypad alfabet dilaporkan dalam objek Configuration resource sebagai KEYBOARD_QWERTY.

  • Jika perangkat input memiliki tombol yang dipetakan ke KEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHT, dan KEYCODE_DPAD_CENTER (semuanya harus ada), perangkat dianggap memiliki keypad arah. Kemampuan keypad arah dilaporkan dalam objek Configuration resource sebagai NAVIGATION_DPAD.

  • Jika perangkat input memiliki tombol yang dipetakan ke KEYCODE_BUTTON_A atau tombol terkait gamepad lainnya, perangkat tersebut dianggap memiliki gamepad.

Persyaratan driver keyboard

  1. Driver keyboard hanya boleh mendaftarkan kode kunci untuk kunci yang benar-benar didukung. Mendaftarkan kode kunci yang berlebihan dapat membingungkan algoritma klasifikasi perangkat atau menyebabkan sistem salah mendeteksi kemampuan keyboard yang didukung perangkat.

  2. Driver keyboard harus menggunakan EV_KEY untuk melaporkan penekanan tombol, menggunakan nilai 0 untuk menunjukkan bahwa tombol dilepaskan, nilai 1 untuk menunjukkan bahwa tombol ditekan, dan nilai yang lebih besar dari atau sama dengan 2 untuk menunjukkan bahwa tombol diulang secara otomatis.

  3. Android melakukan pengulangan keyboardnya sendiri. Fungsi pengulangan otomatis harus dinonaktifkan di driver.

  4. Driver keyboard dapat secara opsional menunjukkan penggunaan HID atau kode pemindaian tingkat rendah dengan mengirimkan EV_MSC dengan MSC_SCANCODE dan nilai yang menunjukkan penggunaan atau kode pemindaian saat tombol ditekan. Saat ini, informasi ini tidak digunakan oleh Android.

  5. Driver keyboard harus mendukung setelan status LED saat EV_LED ditulis ke perangkat. Driver hid-input menanganinya secara otomatis. Pada saat penulisan ini, Android menggunakan LED_CAPSLOCK, LED_SCROLLLOCK, dan LED_NUMLOCK. LED ini hanya perlu didukung jika keyboard benar-benar memiliki lampu indikator terkait.

  6. Driver keyboard untuk keypad tersemat (misalnya, menggunakan matriks GPIO) harus memastikan untuk mengirim peristiwa EV_KEY dengan nilai 0 untuk tombol apa pun yang masih ditekan saat perangkat akan tidur. Jika tidak, tombol mungkin akan tertekan dan akan otomatis diulang selamanya.

Operasi keyboard

Berikut adalah ringkasan singkat tentang operasi keyboard di Android.

  1. EventHub membaca peristiwa mentah dari driver evdev dan memetakan kode tombol Linux (terkadang disebut sebagai kode pemindaian) ke dalam kode tombol Android menggunakan peta tata letak tombol keyboard.

  2. InputReader menggunakan peristiwa mentah dan memperbarui status kunci meta. Misalnya, jika tombol shift kiri ditekan atau dilepaskan, pembaca akan menetapkan atau mereset bit META_SHIFT_LEFT_ON dan META_SHIFT_ON sebagaimana mestinya.

  3. InputReader memberi tahu InputDispatcher tentang peristiwa utama.

  4. InputDispatcher menanyakan kepada WindowManagerPolicy apa yang harus dilakukan dengan peristiwa tombol dengan memanggil WindowManagerPolicy.interceptKeyBeforeQueueing. Metode ini adalah bagian dari jalur kritis yang bertanggung jawab untuk mengaktifkan perangkat saat tombol tertentu ditekan. EventHub secara efektif menahan wake lock di sepanjang jalur kritis ini untuk memastikan bahwa wake lock akan berjalan hingga selesai.

  5. Jika InputFilter saat ini sedang digunakan, InputDispatcher akan memberinya kesempatan untuk menggunakan atau mengubah kunci. InputFilter dapat digunakan untuk menerapkan kebijakan aksesibilitas tingkat rendah di seluruh sistem.

  6. InputDispatcher mengantrekan kunci untuk diproses di thread pengiriman.

  7. Saat InputDispatcher menghapus kunci dari antrean, tindakan ini memberi WindowManagerPolicy kesempatan kedua untuk mencegat peristiwa utama dengan memanggil WindowManagerPolicy.interceptKeyBeforeDispatching. Metode ini menangani pintasan sistem dan fungsi lainnya.

  8. InputDispatcher kemudian mengidentifikasi target peristiwa utama (jendela yang difokuskan) dan menunggunya siap. Kemudian, InputDispatcher mengirimkan peristiwa utama ke aplikasi.

  9. Di dalam aplikasi, peristiwa tombol akan menyebar ke bawah hierarki tampilan ke tampilan yang difokuskan untuk pengiriman tombol pra-IME.

  10. Jika peristiwa tombol tidak ditangani dalam pengiriman pra-IME dan IME sedang digunakan, peristiwa tombol akan dikirim ke IME.

  11. Jika peristiwa tombol tidak digunakan oleh IME, peristiwa tombol akan disebarkan ke bawah hierarki tampilan ke tampilan yang difokuskan untuk pengiriman tombol standar.

  12. Aplikasi melaporkan kembali ke InputDispatcher apakah peristiwa utama digunakan atau tidak. Jika peristiwa tidak digunakan, InputDispatcher akan memanggil WindowManagerPolicy.dispatchUnhandledKey untuk menerapkan perilaku "fallback". Bergantung pada tindakan penggantian, siklus pengiriman peristiwa utama dapat dimulai ulang menggunakan kode kunci yang berbeda. Misalnya, jika aplikasi tidak menangani KEYCODE_ESCAPE, sistem dapat mengirim ulang peristiwa utama sebagai KEYCODE_BACK.

Konfigurasi keyboard

Perilaku keyboard ditentukan oleh tata letak tombol keyboard, peta karakter kunci, dan konfigurasi perangkat input.

Lihat bagian berikut untuk mengetahui detail selengkapnya tentang file yang berpartisipasi dalam konfigurasi keyboard:

Properti

Properti konfigurasi perangkat input berikut digunakan untuk keyboard.

keyboard.layout

Definisi: keyboard.layout = <name>

Menentukan nama file tata letak kunci yang terkait dengan perangkat input, tidak termasuk ekstensi .kl. Jika file ini tidak ditemukan, sistem input akan menggunakan tata letak tombol default.

Spasi dalam nama dikonversi menjadi garis bawah selama pencarian.

Lihat dokumentasi file tata letak kunci untuk mengetahui detail selengkapnya.

keyboard.characterMap

Definisi: keyboard.characterMap = <name>

Menentukan nama file peta karakter kunci yang terkait dengan perangkat input, tidak termasuk ekstensi .kcm. Jika file ini tidak ditemukan, sistem input akan menggunakan peta karakter kunci default.

Spasi dalam nama dikonversi menjadi garis bawah selama pencarian.

Lihat dokumentasi file peta karakter kunci untuk mengetahui detail selengkapnya.

keyboard.orientationAware

Definisi: keyboard.orientationAware = 0 | 1

Menentukan apakah keyboard harus bereaksi terhadap perubahan orientasi layar.

  • Jika nilainya 1, tombol keypad arah akan diputar saat orientasi layar terkait berubah.

  • Jika nilainya 0, keyboard tidak akan terpengaruh oleh perubahan orientasi tampilan.

Nilai default-nya adalah 0.

Kesadaran orientasi digunakan untuk mendukung rotasi tombol keypad arah, seperti di Motorola Droid. Misalnya, saat perangkat diputar searah jarum jam 90 derajat dari orientasi alaminya, KEYCODE_DPAD_UP akan dipetakan ulang untuk menghasilkan KEYCODE_DPAD_RIGHT karena tombol 'atas' akhirnya mengarah 'kanan' saat perangkat dipegang dalam orientasi tersebut.

keyboard.builtIn

Definisi: keyboard.builtIn = 0 | 1

Menentukan apakah keyboard adalah keyboard bawaan (terpasang secara fisik).

Nilai defaultnya adalah 1 jika nama perangkat diakhiri dengan -keypad, 0 jika tidak.

Keyboard bawaan selalu diberi ID perangkat 0. Keyboard lain yang tidak bawaan diberi ID perangkat unik yang bukan nol.

Menggunakan ID 0 untuk keyboard bawaan penting untuk mempertahankan kompatibilitas dengan kolom KeyCharacterMap.BUILT_IN_KEYBOARD, yang menentukan ID keyboard bawaan dan memiliki nilai 0. Kolom ini sudah tidak digunakan lagi di API, tetapi aplikasi lama mungkin masih menggunakannya.

Keyboard fungsi khusus (keyboard yang peta karakter kuncinya menentukan jenis SPECIAL_FUNCTION) tidak akan pernah terdaftar sebagai keyboard bawaan, terlepas dari setelan properti ini. Hal ini karena keyboard fungsi khusus menurut definisi tidak dimaksudkan untuk digunakan untuk pengetikan tujuan umum.

Contoh konfigurasi

# This is an example input device configuration file for a built-in
# keyboard that has a DPad.

# The keyboard is internal because it is part of the device.
device.internal = 1

# The keyboard is the default built-in keyboard so it should be assigned
# an id of 0.
keyboard.builtIn = 1

# The keyboard includes a DPad which is mounted on the device.  As the device
# is rotated the orientation of the DPad rotates along with it, so the DPad must
# be aware of the display orientation.  This ensures that pressing 'up' on the
# DPad always means 'up' from the perspective of the user, even when the entire
# device has been rotated.
keyboard.orientationAware = 1

Catatan kompatibilitas

Sebelum Honeycomb, pemetaan input keyboard tidak menggunakan properti konfigurasi apa pun. Semua keyboard diasumsikan terpasang secara fisik dan mengetahui orientasi. Tata letak kunci dan peta karakter kunci default diberi nama qwerty, bukan Generic. Format peta karakter kunci juga sangat berbeda dan framework tidak mendukung keyboard penuh bergaya PC atau keyboard eksternal.

Saat mengupgrade perangkat ke Honeycomb, pastikan untuk membuat atau memperbarui file konfigurasi dan peta kunci yang diperlukan.

Penggunaan HID, kode kunci Linux, dan kode kunci Android

Sistem merujuk ke kunci menggunakan beberapa ID yang berbeda, bergantung pada lapisan abstraksi.

Untuk perangkat HID, setiap tombol memiliki penggunaan HID terkait. Driver hid-input Linux dan driver HID khusus vendor dan perangkat terkait bertanggung jawab untuk mengurai laporan HID dan memetakan penggunaan HID ke kode kunci Linux.

Saat membaca peristiwa EV_KEY dari kernel Linux, Android menerjemahkan setiap kode kunci Linux menjadi kode kunci Android yang sesuai sesuai dengan file tata letak kunci perangkat.

Saat peristiwa utama dikirim ke aplikasi, instance android.view.KeyEvent akan melaporkan kode tombol Linux sebagai nilai getScanCode() dan kode tombol Android sebagai nilai getKeyCode(). Untuk tujuan framework, hanya nilai getKeyCode() yang penting.

Perhatikan bahwa informasi penggunaan HID tidak digunakan oleh Android itu sendiri atau diteruskan ke aplikasi.

Tabel kode

Tabel berikut menunjukkan hubungan antara penggunaan HID, kode tombol Linux, dan kode tombol Android.

Kolom LKC menentukan kode kunci Linux dalam heksadesimal.

Kolom AKC menentukan kode kunci Android dalam heksadesimal.

Kolom Catatan mengacu pada catatan yang diposting setelah tabel.

Kolom Version menentukan versi pertama platform Android yang menyertakan kunci ini dalam peta kunci defaultnya. Beberapa baris ditampilkan jika peta tombol default telah berubah di antara versi. Versi tertua yang ditunjukkan adalah 1.6.

  • Pada rilis Gingerbread (2.3) dan yang lebih lama, peta tombol default adalah qwerty.kl. Peta tombol ini hanya dimaksudkan untuk digunakan dengan Android Emulator dan tidak dimaksudkan untuk digunakan untuk mendukung keyboard eksternal arbitrer. Namun, beberapa OEM menambahkan dukungan keyboard Bluetooth ke platform dan mengandalkan qwerty.kl untuk menyediakan pemetaan keyboard yang diperlukan. Oleh karena itu, pemetaan lama ini mungkin menarik bagi OEM yang membuat periferal untuk perangkat tertentu ini. Perhatikan bahwa pemetaan secara substansial berbeda dengan pemetaan saat ini, terutama sehubungan dengan perlakuan kunci HOME. Sebaiknya semua periferal baru dikembangkan sesuai dengan Honeycomb atau peta tombol terbaru (yaitu HID standar).

  • Mulai Honeycomb (3.0), peta kunci default adalah Generic.kl. Peta tombol ini dirancang untuk mendukung keyboard gaya PC lengkap. Sebagian besar fungsi keyboard HID standar akan berfungsi secara langsung.

Konfigurasi kode kunci dapat bervariasi di seluruh versi kernel Linux dan Android. Jika diketahui bahwa perubahan telah terjadi pada peta tombol default Android, perubahan tersebut akan ditunjukkan di kolom versi.

Driver HID dan peta tombol khusus perangkat dapat menerapkan pemetaan yang berbeda dari yang ditunjukkan di sini.

Halaman keyboard dan keypad HID (0x07)

Penggunaan HID Nama Penggunaan HID LKC Nama Kode Kunci Linux Versi AKC Nama Kode Kunci Android Catatan
0x07 0x0001 Roll Over Error Keyboard
0x07 0x0002 POST Keyboard Gagal
0x07 0x0003 Error Keyboard Tidak Terdefinisi
0x07 0x0004 Keyboard a dan A 0x001e KEY_A 1,6 0x001d KEYCODE_A 1
0x07 0x0005 Keyboard b dan B 0x0030 KEY_B 1,6 0x001e KEYCODE_B 1
0x07 0x0006 Tombol c dan C 0x002e KEY_C 1,6 0x001f KEYCODE_C 1
0x07 0x0007 d dan D keyboard 0x0020 KEY_D 1,6 0x0020 KEYCODE_D 1
0x07 0x0008 Keyboard e dan E 0x0012 KEY_E 1,6 0x0021 KEYCODE_E 1
0x07 0x0009 Keyboard f dan F 0x0021 KEY_F 1,6 0x0022 KEYCODE_F 1
0x07 0x000a Tombol g dan G 0x0022 KEY_G 1,6 0x0023 KEYCODE_G 1
0x07 0x000b h dan H keyboard 0x0023 KEY_H 1,6 0x0024 KEYCODE_H 1
0x07 0x000c i dan I keyboard 0x0017 KEY_I 1,6 0x0025 KEYCODE_I 1
0x07 0x000d Keyboard j dan J 0x0024 KEY_J 1,6 0x0026 KEYCODE_J 1
0x07 0x000e Tombol k dan K 0x0025 KEY_K 1,6 0x0027 KEYCODE_K 1
0x07 0x000f Keyboard l dan L 0x0026 KEY_L 1,6 0x0028 KEYCODE_L 1
0x07 0x0010 Keyboard m dan M 0x0032 KEY_M 1,6 0x0029 KEYCODE_M 1
0x07 0x0011 Keyboard n dan N 0x0031 KEY_N 1,6 0x002a KEYCODE_N 1
0x07 0x0012 Keyboard o dan O 0x0018 KEY_O 1,6 0x002b KEYCODE_O 1
0x07 0x0013 Tombol p dan P 0x0019 KEY_P 1,6 0x002c KEYCODE_P 1
0x07 0x0014 Tombol q dan Q keyboard 0x0010 KEY_Q 1,6 0x002d KEYCODE_Q 1
0x07 0x0015 Tombol r dan R 0x0013 KEY_R 1,6 0x002e KEYCODE_R 1
0x07 0x0016 Keyboard s dan S 0x001f KEY_S 1,6 0x002f KEYCODE_S 1
0x07 0x0017 t dan T keyboard 0x0014 KEY_T 1,6 0x0030 KEYCODE_T 1
0x07 0x0018 Keyboard u dan U 0x0016 KEY_U 1,6 0x0031 KEYCODE_U 1
0x07 0x0019 Keyboard v dan V 0x002f KEY_V 1,6 0x0032 KEYCODE_V 1
0x07 0x001a Tombol w dan W pada keyboard 0x0011 KEY_W 1,6 0x0033 KEYCODE_W 1
0x07 0x001b Tombol x dan X 0x002d KEY_X 1,6 0x0034 KEYCODE_X 1
0x07 0x001c Tombol y dan Y 0x0015 KEY_Y 1,6 0x0035 KEYCODE_Y 1
0x07 0x001d Keyboard z dan Z 0x002c KEY_Z 1,6 0x0036 KEYCODE_Z 1
0x07 0x001e Keyboard 1 dan ! 0x0002 KEY_1 1,6 0x0008 KEYCODE_1 1
0x07 0x001f Keyboard 2 dan @ 0x0003 KEY_2 1,6 0x0009 KEYCODE_2 1
0x07 0x0020 Keyboard 3 dan # 0x0004 KEY_3 1,6 0x000a KEYCODE_3 1
0x07 0x0021 Keyboard 4 dan $ 0x0005 KEY_4 1,6 0x000b KEYCODE_4 1
0x07 0x0022 Keyboard 5 dan % 0x0006 KEY_5 1,6 0x000c KEYCODE_5 1
0x07 0x0023 Keyboard 6 dan ^ 0x0007 KEY_6 1,6 0x000d KEYCODE_6 1
0x07 0x0024 Keyboard 7 dan & 0x0008 KEY_7 1,6 0x000e KEYCODE_7 1
0x07 0x0025 Keyboard 8 dan * 0x0009 KEY_8 1,6 0x000f KEYCODE_8 1
0x07 0x0026 Keyboard 9 dan ( 0x000a KEY_9 1,6 0x0010 KEYCODE_9 1
0x07 0x0027 Keyboard 0 dan ) 0x000b KEY_0 1,6 0x0007 KEYCODE_0 1
0x07 0x0028 Keyboard Return (ENTER) 0x001c KEY_ENTER 1,6 0x0042 KEYCODE_ENTER 1
0x07 0x0029 ESCAPE Keyboard 0x0001 KEY_ESC 3.0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 KEYCODE_BACK
0x07 0x002a Tombol DELETE (Backspace) keyboard 0x000e KEY_BACKSPACE 1,6 0x0043 KEYCODE_DEL
0x07 0x002b Tab Keyboard 0x000f KEY_TAB 1,6 0x003d KEYCODE_TAB
0x07 0x002c Spasi Keyboard 0x0039 KEY_SPACE 1,6 0x003e KEYCODE_SPACE
0x07 0x002d Keyboard - dan _ 0x000c KEY_MINUS 1,6 0x0045 KEYCODE_MINUS 1
0x07 0x002e Keyboard = dan + 0x000d KEY_EQUAL 1,6 0x0046 KEYCODE_EQUALS 1
0x07 0x002f Keyboard [ dan { 0x001a KEY_LEFTBRACE 1,6 0x0047 KEYCODE_LEFT_BRACKET 1
0x07 0x0030 Keyboard ] dan } 0x001b KEY_RIGHTBRACE 1,6 0x0048 KEYCODE_RIGHT_BRACKET 1
0x07 0x0031 Keyboard \ dan | 0x002b KEY_BACKSLASH 1,6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0032 Keyboard Non-AS # dan ~ 0x002b KEY_BACKSLASH 1,6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 Keyboard ; dan : 0x0027 KEY_SEMICOLON 1,6 0x004a KEYCODE_SEMICOLON 1
0x07 0x0034 Tanda ' dan " keyboard 0x0028 KEY_APOSTROPHE 1,6 0x004b KEYCODE_APOSTROPHE 1
0x07 0x0035 Tombol ` dan ~ 0x0029 KEY_GRAVE 3.0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 Keyboard , dan < 0x0033 KEY_COMMA 1,6 0x0037 KEYCODE_COMMA 1
0x07 0x0037 Keyboard . dan > 0x0034 KEY_DOT 1,6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 Keyboard / dan ? 0x0035 KEY_SLASH 1,6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Caps Lock Keyboard 0x003a KEY_CAPSLOCK 3.0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a Keyboard F1 0x003b KEY_F1 3.0 0x0083 KEYCODE_F1
"" "" "" "" 1,6 0x0052 KEYCODE_MENU
0x07 0x003b Keyboard F2 0x003c KEY_F2 3.0 0x0084 KEYCODE_F2
"" "" "" "" 1,6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c Keyboard F3 0x003d KEY_F3 3.0 0x0085 KEYCODE_F3
"" "" "" "" 1,6 0x0005 KEYCODE_CALL
0x07 0x003d Keyboard F4 0x003e KEY_F4 3.0 0x0086 KEYCODE_F4
"" "" "" "" 1,6 0x0006 KEYCODE_ENDCALL
0x07 0x003e F5 Keyboard 0x003f KEY_F5 3.0 0x0087 KEYCODE_F5
0x07 0x003f Keyboard F6 0x0040 KEY_F6 3.0 0x0088 KEYCODE_F6
0x07 0x0040 Keyboard F7 0x0041 KEY_F7 3.0 0x0089 KEYCODE_F7
0x07 0x0041 Keyboard F8 0x0042 KEY_F8 3.0 0x008a KEYCODE_F8
0x07 0x0042 Keyboard F9 0x0043 KEY_F9 3.0 0x008b KEYCODE_F9
0x07 0x0043 Keyboard F10 0x0044 KEY_F10 3.0 0x008c KEYCODE_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 Keyboard F11 0x0057 KEY_F11 3.0 0x008d KEYCODE_F11
0x07 0x0045 Keyboard F12 0x0058 KEY_F12 3.0 0x008e KEYCODE_F12
0x07 0x0046 Print Screen Keyboard 0x0063 KEY_SYSRQ 3.0 0x0078 KEYCODE_SYSRQ
0x07 0x0047 Scroll Lock Keyboard 0x0046 KEY_SCROLLLOCK 3.0 0x0074 KEYCODE_SCROLL_LOCK
0x07 0x0048 Jeda Keyboard 0x0077 KEY_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x07 0x0049 Sisipkan Keyboard 0x006e KEY_INSERT 3.0 0x007c KEYCODE_INSERT
0x07 0x004a Keyboard Home 0x0066 KEY_HOME 3.0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1,6 0x0003 KEYCODE_HOME
0x07 0x004b Halaman Sebelumnya Keyboard 0x0068 KEY_PAGEUP 3.0 0x005c KEYCODE_PAGE_UP
0x07 0x004c Keyboard Delete Maju 0x006f KEY_DELETE 3.0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d Keyboard End 0x006b KEY_END 3.0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1,6 0x0006 KEYCODE_ENDCALL
0x07 0x004e Page Down Keyboard 0x006d KEY_PAGEDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x07 0x004f Panah Kanan Keyboard 0x006a KEY_RIGHT 1,6 0x0016 KEYCODE_DPAD_RIGHT
0x07 0x0050 Panah Kiri Keyboard 0x0069 KEY_LEFT 1,6 0x0015 KEYCODE_DPAD_LEFT
0x07 0x0051 Panah Bawah Keyboard 0x006c KEY_DOWN 1,6 0x0014 KEYCODE_DPAD_DOWN
0x07 0x0052 Panah Atas Keyboard 0x0067 KEY_UP 1,6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 Num Lock dan Clear Keyboard 0x0045 KEY_NUMLOCK 3.0 0x008f KEYCODE_NUM_LOCK
0x07 0x0054 Keypad / 0x0062 KEY_KPSLASH 3.0 0x009a KEYCODE_NUMPAD_DIVIDE
0x07 0x0055 Keypad * 0x0037 KEY_KPASTERISK 3.0 0x009b KEYCODE_NUMPAD_MULTIPLY
0x07 0x0056 Keypad - 0x004a KEY_KPMINUS 3.0 0x009c KEYCODE_NUMPAD_SUBTRACT
0x07 0x0057 Keypad + 0x004e KEY_KPPLUS 3.0 0x009d KEYCODE_NUMPAD_ADD
0x07 0x0058 Tombol ENTER keypad 0x0060 KEY_KPENTER 3.0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 Keypad 1 dan End 0x004f KEY_KP1 3.0 0x0091 KEYCODE_NUMPAD_1
0x07 0x005a Tombol 2 dan Panah Bawah 0x0050 KEY_KP2 3.0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b Keypad 3 dan PageDn 0x0051 KEY_KP3 3.0 0x0093 KEYCODE_NUMPAD_3
0x07 0x005c Tombol 4 dan Panah Kiri 0x004b KEY_KP4 3.0 0x0094 KEYCODE_NUMPAD_4
0x07 0x005d Keypad 5 0x004c KEY_KP5 3.0 0x0095 KEYCODE_NUMPAD_5
0x07 0x005e Tombol 6 dan Panah Kanan 0x004d KEY_KP6 3.0 0x0096 KEYCODE_NUMPAD_6
0x07 0x005f Tombol 7 dan Home 0x0047 KEY_KP7 3.0 0x0097 KEYCODE_NUMPAD_7
0x07 0x0060 Tombol 8 dan Panah Atas 0x0048 KEY_KP8 3.0 0x0098 KEYCODE_NUMPAD_8
0x07 0x0061 Tombol 9 dan Page Up 0x0049 KEY_KP9 3.0 0x0099 KEYCODE_NUMPAD_9
0x07 0x0062 Papan tombol 0 dan Sisipkan 0x0052 KEY_KP0 3.0 0x0090 KEYCODE_NUMPAD_0
0x07 0x0063 Keypad . dan Hapus 0x0053 KEY_KPDOT 3.0 0x009e KEYCODE_NUMPAD_DOT
0x07 0x0064 Keyboard Non-AS \ dan | 0x0056 KEY_102ND 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 Aplikasi Keyboard 0x007f KEY_COMPOSE 3.0 0x0052 KEYCODE_MENU
"" "" "" "" 1,6 0x0054 KEYCODE_SEARCH
0x07 0x0066 Daya Keyboard 0x0074 KEY_POWER 1,6 0x001a KEYCODE_POWER
0x07 0x0067 Keypad = 0x0075 KEY_KPEQUAL 3.0 0x00a1 KEYCODE_NUMPAD_EQUALS
0x07 0x0068 Keyboard F13 0x00b7 KEY_F13
0x07 0x0069 Keyboard F14 0x00b8 KEY_F14
0x07 0x006a Keyboard F15 0x00b9 KEY_F15
0x07 0x006b Keyboard F16 0x00ba KEY_F16
0x07 0x006c Keyboard F17 0x00bb KEY_F17
0x07 0x006d Keyboard F18 0x00bc KEY_F18
0x07 0x006e Keyboard F19 0x00bd KEY_F19
0x07 0x006f Keyboard F20 0x00be KEY_F20
0x07 0x0070 Keyboard F21 0x00bf KEY_F21
0x07 0x0071 Keyboard F22 0x00c0 KEY_F22
0x07 0x0072 Keyboard F23 0x00c1 KEY_F23
0x07 0x0073 Keyboard F24 0x00c2 KEY_F24
0x07 0x0074 Eksekusi Keyboard 0x0086 KEY_OPEN
0x07 0x0075 Bantuan Keyboard 0x008a KEY_HELP
0x07 0x0076 Menu Keyboard 0x0082 KEY_PROPS
0x07 0x0077 Pilihan Keyboard 0x0084 KEY_FRONT
0x07 0x0078 Penahan Keyboard 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 Keyboard Lagi 0x0081 KEY_AGAIN
0x07 0x007a Urungkan Keyboard 0x0083 KEY_UNDO
0x07 0x007b Pemangkasan Keyboard 0x0089 KEY_CUT
0x07 0x007c Salin Keyboard 0x0085 KEY_COPY
0x07 0x007d Tempel Keyboard 0x0087 KEY_PASTE
0x07 0x007e Temukan Keyboard 0x0088 KEY_FIND
0x07 0x007f Bisukan Keyboard 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x0080 Naikkan Volume Keyboard 0x0073 KEY_VOLUMEUP 1,6 0x0018 KEYCODE_VOLUME_UP
0x07 0x0081 Turunkan Volume Keyboard 0x0072 KEY_VOLUMEDOWN 1,6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x0082 Caps Lock Penguncian Keyboard
0x07 0x0083 Num Lock Penguncian Keyboard
0x07 0x0084 Scroll Lock Penguncian Keyboard
0x07 0x0085 Koma Keypad 0x0079 KEY_KPCOMMA 3.0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Tanda Sama Dengan Keypad
0x07 0x0087 Keyboard International1 0x0059 KEY_RO
0x07 0x0088 Keyboard International2 0x005d KEY_KATAKANAHIRAGANA
0x07 0x0089 Keyboard International3 0x007c KEY_YEN
0x07 0x008a Keyboard International4 0x005c KEY_HENKAN
0x07 0x008b Keyboard International5 0x005e KEY_MUHENKAN
0x07 0x008c Keyboard International6 0x005f KEY_KPJPCOMMA
0x07 0x008d Keyboard International7
0x07 0x008e Keyboard International8
0x07 0x008f Keyboard International9
0x07 0x0090 Keyboard LANG1 0x007a KEY_HANGEUL
0x07 0x0091 Keyboard LANG2 0x007b KEY_HANJA
0x07 0x0092 Keyboard LANG3 0x005a KEY_KATAKANA
0x07 0x0093 Keyboard LANG4 0x005b KEY_HIRAGANA
0x07 0x0094 Keyboard LANG5 0x0055 KEY_ZENKAKUHANKAKU
0x07 0x0095 Keyboard LANG6
0x07 0x0096 Keyboard LANG7
0x07 0x0097 Keyboard LANG8
0x07 0x0098 Keyboard LANG9
0x07 0x0099 Penghapusan Alternatif Keyboard
0x07 0x009a SysReq/Attention Keyboard
0x07 0x009b Batal Keyboard
0x07 0x009c Keyboard Clear
0x07 0x009d Keyboard Sebelumnya
0x07 0x009e Kembali Keyboard
0x07 0x009f Pemisah Keyboard
0x07 0x00a0 Keyboard Out
0x07 0x00a1 Oper Keyboard
0x07 0x00a2 Keyboard Clear/Again
0x07 0x00a3 CrSel/Props Keyboard
0x07 0x00a4 ExSel Keyboard
0x07 0x00b0 Keypad 00
0x07 0x00b1 Keypad 000
0x07 0x00b2 Pemisah Ribuan
0x07 0x00b3 Pemisah Desimal
0x07 0x00b4 Unit Mata Uang
0x07 0x00b5 Sub-unit Mata Uang
0x07 0x00b6 Keypad ( 0x00b3 KEY_KPLEFTPAREN 3.0 0x00a2 KEYCODE_NUMPAD_LEFT_PAREN
0x07 0x00b7 Keypad ) 0x00b4 KEY_KPRIGHTPAREN 3.0 0x00a3 KEYCODE_NUMPAD_RIGHT_PAREN
0x07 0x00b8 Keypad {
0x07 0x00b9 Keypad }
0x07 0x00ba Tab Keypad
0x07 0x00bb Backspace Keypad
0x07 0x00bc Keypad A
0x07 0x00bd Keypad B
0x07 0x00be Keypad C
0x07 0x00bf Keypad D
0x07 0x00c0 Keypad E
0x07 0x00c1 Keypad F
0x07 0x00c2 XOR Keypad
0x07 0x00c3 Keypad ^
0x07 0x00c4 % Keypad
0x07 0x00c5 Papan tombol <
0x07 0x00c6 Papan tombol >
0x07 0x00c7 Papan tombol &
0x07 0x00c8 Keypad &&
0x07 0x00c9 Keypad |
0x07 0x00ca Keypad ||
0x07 0x00cb Keypad :
0x07 0x00cc Keypad #
0x07 0x00cd Ruang Keypad
0x07 0x00ce Keypad @
0x07 0x00cf Keypad !
0x07 0x00d0 Penyimpanan Memori Keypad
0x07 0x00d1 Pengingat Memori Papan Tombol
0x07 0x00d2 Pembersihan Memori Papan Tombol
0x07 0x00d3 Penambahan Memori Keypad
0x07 0x00d4 Pengurangan Memori Keypad
0x07 0x00d5 Keypad Memory Multiply
0x07 0x00d6 Pembagian Memori Keypad
0x07 0x00d7 Keypad +/-
0x07 0x00d8 Keypad Clear
0x07 0x00d9 Entri Hapus Keypad
0x07 0x00da Biner Keypad
0x07 0x00db Keypad Oktal
0x07 0x00dc Keypad Desimal
0x07 0x00dd Heksadesimal Keypad
0x07 0x00e0 Kontrol Kiri Keyboard 0x001d KEY_LEFTCTRL 3.0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 Shift Kiri Keyboard 0x002a KEY_LEFTSHIFT 1,6 0x003b KEYCODE_SHIFT_LEFT
0x07 0x00e2 Alt Kiri Keyboard 0x0038 KEY_LEFTALT 1,6 0x0039 KEYCODE_ALT_LEFT
0x07 0x00e3 GUI Kiri Keyboard 0x007d KEY_LEFTMETA 3.0 0x0075 KEYCODE_META_LEFT
0x07 0x00e4 Kontrol Kanan Keyboard 0x0061 KEY_RIGHTCTRL 3.0 0x0072 KEYCODE_CTRL_RIGHT
0x07 0x00e5 Shift Kanan Keyboard 0x0036 KEY_RIGHTSHIFT 1,6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 Alt Kanan Keyboard 0x0064 KEY_RIGHTALT 1,6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 GUI Kanan Keyboard 0x007e KEY_RIGHTMETA 3.0 0x0076 KEYCODE_META_RIGHT
0x07 0x00e8 0x00a4 KEY_PLAYPAUSE 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x07 0x00e9 0x00a6 KEY_STOPCD 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x00ea 0x00a5 KEY_PREVIOUSSONG 3.0 0x0058 KEYCODE_MEDIA_PREVIOUS
0x07 0x00eb 0x00a3 KEY_NEXTSONG 3.0 0x0057 KEYCODE_MEDIA_NEXT
0x07 0x00ec 0x00a1 KEY_EJECTCD 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x07 0x00ed 0x0073 KEY_VOLUMEUP 1,6 0x0018 KEYCODE_VOLUME_UP
0x07 0x00ee 0x0072 KEY_VOLUMEDOWN 1,6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x00ef 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x00f0 0x0096 KEY_WWW 1,6 0x0040 KEYCODE_EXPLORER
0x07 0x00f1 0x009e KEY_BACK 1,6 0x0004 KEYCODE_BACK
0x07 0x00f2 0x009f KEY_FORWARD 3.0 0x007d KEYCODE_FORWARD
0x07 0x00f3 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x00f4 0x0088 KEY_FIND
0x07 0x00f5 0x00b1 KEY_SCROLLUP 3.0 0x005c KEYCODE_PAGE_UP
0x07 0x00f6 0x00b2 KEY_SCROLLDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x07 0x00f7 0x00b0 KEY_EDIT
0x07 0x00f8 0x008e KEY_SLEEP
0x07 0x00f9 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x07 0x00fa 0x00ad KEY_REFRESH
0x07 0x00fb 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR

Halaman desktop umum HID (0x01)

Penggunaan HID Nama Penggunaan HID LKC Nama Kode Kunci Linux Versi AKC Nama Kode Kunci Android Catatan
0x01 0x0081 Penonaktifan Daya Sistem 0x0074 KEY_POWER 1,6 0x001a KEYCODE_POWER
0x01 0x0082 Tidur Sistem 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x01 0x0083 Sistem Bangun 0x008f KEY_WAKEUP 4.0 0x001a KEYCODE_POWER
0x01 0x0084 Menu Konteks Sistem
0x01 0x0085 Menu Utama Sistem
0x01 0x0086 Menu Aplikasi Sistem
0x01 0x0087 Bantuan Menu Sistem
0x01 0x0088 Keluar dari Menu Sistem
0x01 0x0089 Pilih Menu Sistem
0x01 0x008a Menu Sistem Kanan
0x01 0x008b Menu Sistem Kiri
0x01 0x008c Menu Sistem Atas
0x01 0x008d Menu Sistem Turun
0x01 0x008e Cold Start Sistem
0x01 0x008f Warm Restart Sistem
0x01 0x00a0 Dok Sistem
0x01 0x00a1 Lepaskan Kaitan Sistem
0x01 0x00a2 Penyiapan Sistem
0x01 0x00a3 Jeda Sistem
0x01 0x00a4 Jeda Debugger Sistem
0x01 0x00a5 Jeda Aplikasi
0x01 0x00a6 Jeda Debugger Aplikasi
0x01 0x00a7 Bisukan Speaker Sistem
0x01 0x00a8 Hibernasi Sistem
0x01 0x00b0 Inversi Tampilan Sistem
0x01 0x00b1 Tampilan Sistem Internal
0x01 0x00b2 Tampilan Sistem Eksternal
0x01 0x00b3 Tampilkan Keduanya di Sistem
0x01 0x00b4 Tampilan Sistem Ganda
0x01 0x00b5 Tombol Tampilan Sistem Int/Ext
0x01 0x00b6 Pertukaran Tampilan Sistem Prim./Sec.
0x01 0x00b7 Skalakan Otomatis LCD Layar Sistem

Halaman konsumen HID (0x0c)

Penggunaan HID Nama Penggunaan HID LKC Nama Kode Kunci Linux Versi AKC Nama Kode Kunci Android Catatan
0x0c 0x0030 Daya
0x0c 0x0031 Reset
0x0c 0x0032 Tidur
0x0c 0x0033 Tidur Setelah
0x0c 0x0034 Mode Tidur 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x0c 0x0040 Menu 0x008b KEY_MENU 1,6 0x0052 KEYCODE_MENU
0x0c 0x0041 Pilihan Menu
0x0c 0x0042 Menu ke Atas
0x0c 0x0043 Menu Turun
0x0c 0x0044 Menu Kiri
0x0c 0x0045 Menu Kanan 0x0181 KEY_RIGHT
0x0c 0x0046 Menu Escape
0x0c 0x0047 Peningkatan Nilai Menu
0x0c 0x0048 Penurunan Nilai Menu
0x0c 0x0067 Tombol Picture-in-Picture 0x00ab KEYCODE_WINDOW Ditambahkan di aosp/1365553
0x0c 0x0069 Tombol Menu Merah 0x18e KEY_RED 0x00b7 KEYCODE_PROG_RED Ditambahkan di aosp/1388616
0x0c 0x006a Tombol Menu Hijau 0x18f KEY_GREEN 0x00b8 KEYCODE_PROG_GREEN Ditambahkan di aosp/1388616
0x0c 0x006b Tombol Menu Biru 0x191 KEY_BLUE 0x00ba KEYCODE_PROG_BLUE Ditambahkan di aosp/1388616
0x0c 0x006c Tombol Menu Kuning 0x190 KEY_YELLOW 0x00b9 KEYCODE_PROG_YELLOW Ditambahkan di aosp/1388616
0x0c 0x0081 Menetapkan Pilihan
0x0c 0x0082 Langkah Mode
0x0c 0x0083 Recall Last 0x0195 KEY_LAST 0xe5 KEYCODE_LAST_CHANNEL Ditambahkan di aosp/1365551
0x0c 0x0084 Masukkan Channel
0x0c 0x0085 Memesan Film
0x0c 0x0088 Komputer Media Select 0x0178 KEY_PC
0x0c 0x0089 TV Media Select 0x0179 KEY_TV 3.0 0x00aa KEYCODE_TV
0x0c 0x008a Media Select WWW 0x0096 KEY_WWW 1,6 0x0040 KEYCODE_EXPLORER
0x0c 0x008b DVD Media Select 0x0185 KEY_DVD
0x0c 0x008c Media Select Telephone 0x00a9 KEY_PHONE 3.0 0x0005 KEYCODE_CALL
0x0c 0x008d Panduan Program Media Select 0x016a KEY_PROGRAM 3.0 0x00ac KEYCODE_GUIDE
0x0c 0x008e Media Select Video Phone 0x01a0 KEY_VIDEOPHONE
0x0c 0x008f Game Pilihan Media 0x01a1 KEY_GAMES
0x0c 0x0090 Pesan Pilih Media 0x018c KEY_MEMO
0x0c 0x0091 CD Media Select 0x017f KEY_CD
0x0c 0x0092 VCR Media Select 0x017b KEY_VCR
0x0c 0x0093 Penyetel Pilihan Media 0x0182 KEY_TUNER
0x0c 0x0094 Keluar 0x00ae KEY_EXIT
0x0c 0x0095 Bantuan 0x008a KEY_HELP
0x0c 0x0096 Media Select Tape 0x0180 KEY_TAPE
0x0c 0x0097 Kabel Media Select 0x017a KEY_TV2
0x0c 0x0098 Media Select Satellite 0x017d KEY_SAT
0x0c 0x0099 Keamanan Media Select
0x0c 0x009a Layar Utama Media Select 0x016e KEY_PVR 3.0 0x00ad KEYCODE_DVR
0x0c 0x0061 Subtitel 0x0172 KEY_SUBTITLE 0x00af KEYCODE_CAPTIONS Ditambahkan di aosp/1365552
0x0c 0x009c Penambahan Saluran 0x0192 KEY_CHANNELUP 3.0 0x00a6 KEYCODE_CHANNEL_UP
0x0c 0x009d Penurunan Saluran 0x0193 KEY_CHANNELDOWN 3.0 0x00a7 KEYCODE_CHANNEL_DOWN
0x0c 0x009e SAP Media Select
0x0c 0x00a0 VCR Plus 0x017c KEY_VCR2
0x0c 0x00a1 Sekali
0x0c 0x00a2 Harian
0x0c 0x00a3 Mingguan
0x0c 0x00a4 Bulanan
0x0c 0x00b0 Putar 0x00cf KEY_PLAY 3.0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 Jeda 0x0077 KEY_PAUSE 3.0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 Rekam 0x00a7 KEY_RECORD 3.0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 Maju Cepat 0x00d0 KEY_FASTFORWARD 3.0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 Mundur 0x00a8 KEY_REWIND 3.0 0x0059 KEYCODE_MEDIA_REWIND
0x0c 0x00b5 Pindai Lagu Berikutnya 0x00a3 KEY_NEXTSONG 3.0 0x0057 KEYCODE_MEDIA_NEXT
0x0c 0x00b6 Memindai Lagu Sebelumnya 0x00a5 KEY_PREVIOUSSONG 3.0 0x0058 KEYCODE_MEDIA_PREVIOUS
0x0c 0x00b7 Berhenti 0x00a6 KEY_STOPCD 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x00b8 Keluarkan 0x00a1 KEY_EJECTCD 3.0 0x0081 KEYCODE_MEDIA_EJECT
0x0c 0x00b9 Putar Acak
0x0c 0x00ba Pilih Disk
0x0c 0x00bb Masukkan Disk
0x0c 0x00bc Ulangi 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be Normal Jalur
0x0c 0x00c0 Frame Maju
0x0c 0x00c1 Frame Belakang
0x0c 0x00c2 Tandai
0x0c 0x00c3 Tanda Hapus
0x0c 0x00c4 Ulangi dari Tanda
0x0c 0x00c5 Kembali ke Tanda
0x0c 0x00c6 Penelusuran Tandai Maju
0x0c 0x00c7 Penelusuran Tanda Mundur
0x0c 0x00c8 Reset Penghitung
0x0c 0x00c9 Menampilkan Penghitung
0x0c 0x00ca Menambahkan Tracking
0x0c 0x00cb Pengurangan Pelacakan
0x0c 0x00cc Berhenti / Keluarkan
0x0c 0x00cd Putar / Jeda 0x00a4 KEY_PLAYPAUSE 3.0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce Putar / Lewati
0x0c 0x00e2 Bisukan 0x0071 KEY_MUTE 3.0 0x00a4 KEYCODE_VOLUME_MUTE
0x0c 0x00e5 Penguat Bass 0x00d1 KEY_BASSBOOST
0x0c 0x00e6 Mode Surround
0x0c 0x00e7 Kenyaringan
0x0c 0x00e8 MPX
0x0c 0x00e9 Penambahan Volume 0x0073 KEY_VOLUMEUP 1,6 0x0018 KEYCODE_VOLUME_UP
0x0c 0x00ea Mengurangi Volume 0x0072 KEY_VOLUMEDOWN 1,6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 Penambahan Audio Alternatif 0x00de KEYCODE_MEDIA_AUDIO_TRACK Ditambahkan di aosp/1365554
0x0c 0x0181 Konfigurasi Tombol Peluncuran AL. Alat
0x0c 0x0182 Konfigurasi Tombol yang Dapat Diprogram AL. 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 Konfigurasi Kontrol Konsumen AL. 0x00ab KEY_CONFIG 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x0184 AL Word Processor 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 Editor Teks AL 0x01a6 KEY_EDITOR
0x0c 0x0186 Spreadsheet AL 0x01a7 KEY_SPREADSHEET
0x0c 0x0187 AL Graphics Editor 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 Aplikasi Presentasi AL 0x01a9 KEY_PRESENTATION
0x0c 0x0189 Aplikasi Database AL 0x01aa KEY_DATABASE
0x0c 0x018a AL Email Reader 0x009b KEY_MAIL 1,6 0x0041 KEYCODE_ENVELOPE
0x0c 0x018b AL Newsreader 0x01ab KEY_NEWS
0x0c 0x018c Pesan Suara AL 0x01ac KEY_VOICEMAIL
0x0c 0x018d Kontak AL / Buku Alamat 0x01ad KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_CONTACTS
0x0c 0x018e Kalender / Jadwal AL 0x018d KEY_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f AL Task / Project Manager
0x0c 0x0190 Log / Jurnal / Kartu Waktu AL
0x0c 0x0191 AL Checkbook / Finance 0x00db KEY_FINANCE
0x0c 0x0192 Kalkulator AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR
0x0c 0x0193 Perekaman/Pemutaran A / V AL
0x0c 0x0194 Browser Komputer Lokal AL 0x0090 KEY_FILE
0x0c 0x0195 Browser LAN/WAN AL
0x0c 0x0196 AL Internet Browser 0x0096 KEY_WWW 1,6 0x0040 KEYCODE_EXPLORER
0x0c 0x0197 AL Remote Networking/ISP Connect
0x0c 0x0198 AL Network Conference
0x0c 0x0199 Chat Jaringan AL 0x00d8 KEY_CHAT
0x0c 0x019a AL Telephony / Dialer
0x0c 0x019b Login AL
0x0c 0x019c Logout AL 0x01b1 KEY_LOGOFF
0x0c 0x019d Login / Logout AL
0x0c 0x019e AL Terminal Lock / Screensaver 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Panel Kontrol AL
0x0c 0x01a0 AL Command Line Processor / Run
0x0c 0x01a1 Pengelola Tugas / Proses AL
0x0c 0x01a2 AL Select Task / Application
0x0c 0x01a3 Tugas / Aplikasi Berikutnya AL
0x0c 0x01a4 Tugas / Aplikasi Sebelumnya AL
0x0c 0x01a5 Tugas / Aplikasi Penghentian Preventif AL.
0x0c 0x01a6 Pusat Bantuan Terpadu AL 0x008a KEY_HELP
0x0c 0x01a7 Dokumen AL 0x00eb KEY_DOCUMENTS
0x0c 0x01a8 Tesaurus AL
0x0c 0x01a9 Kamus AL
0x0c 0x01aa Desktop AL
0x0c 0x01ab AL Spell Check 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac Pemeriksaan Tata Bahasa AL
0x0c 0x01ad Status AL Wireless
0x0c 0x01ae Tata Letak Keyboard AL
0x0c 0x01af Perlindungan Virus AL
0x0c 0x01b0 Enkripsi AL
0x0c 0x01b1 Screensaver AL
0x0c 0x01b2 Alarm AL
0x0c 0x01b3 AL Clock
0x0c 0x01b4 AL File Browser
0x0c 0x01b5 Status Daya AL
0x0c 0x01b6 Browser Gambar AL 0x00e2 KEY_MEDIA 3.0 0x004f KEYCODE_HEADSETHOOK
0x0c 0x01b7 AL Audio Browser 0x00d5 KEY_SOUND 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x01b8 AL Movie Browser
0x0c 0x01b9 AL Digital Rights Manager
0x0c 0x01ba AL Digital Wallet
0x0c 0x01bc AL Instant Messaging 0x01ae KEY_MESSENGER
0x0c 0x01bd Fitur OEM AL / Tips Browser 0x0166 KEY_INFO
0x0c 0x01be Bantuan OEM AL
0x0c 0x01bf Komunitas Online AL
0x0c 0x01c0 Browser Konten Hiburan AL
0x0c 0x01c1 Browser Belanja Online AL
0x0c 0x01c2 Informasi / Bantuan SmartCard AL
0x0c 0x01c3 Browser AL Market / Finance
0x0c 0x01c4 AL Customized Corp. News Browser
0x0c 0x01c5 AL Online Activity Browser
0x0c 0x01c6 Browser Penelusuran / Riset AL
0x0c 0x01c7 Pemutar Audio AL
0x0c 0x0201 AC Baru 0x00b5 KEY_NEW
0x0c 0x0202 AC Terbuka 0x0086 KEY_OPEN
0x0c 0x0203 AC Tutup 0x00ce KEY_CLOSE
0x0c 0x0204 Keluar AC 0x00ae KEY_EXIT
0x0c 0x0205 AC Maximize
0x0c 0x0206 AC Minimize
0x0c 0x0207 Hemat AC 0x00ea KEY_SAVE
0x0c 0x0208 AC Print 0x00d2 KEY_PRINT
0x0c 0x0209 Properti AC 0x0082 KEY_PROPS
0x0c 0x021a Urungkan AC 0x0083 KEY_UNDO
0x0c 0x021b Salinan AC 0x0085 KEY_COPY
0x0c 0x021c Potongan AC 0x0089 KEY_CUT
0x0c 0x021d Tempel AC 0x0087 KEY_PASTE
0x0c 0x021e AC Pilih Semua
0x0c 0x021f Penelusuran AC 0x0088 KEY_FIND
0x0c 0x0220 Cari dan Ganti AC
0x0c 0x0221 Penelusuran AC 0x00d9 KEY_SEARCH 1,6 0x0054 KEYCODE_SEARCH
0x0c 0x0222 AC Go To 0x0162 KEY_GOTO
0x0c 0x0223 AC Home 0x00ac KEY_HOMEPAGE 3.0 0x0003 KEYCODE_HOME
0x0c 0x0224 AC Back 0x009e KEY_BACK 1,6 0x0004 KEYCODE_BACK
0x0c 0x0225 AC Maju 0x009f KEY_FORWARD 3.0 0x007d KEYCODE_FORWARD
0x0c 0x0226 Perhentian AC 0x0080 KEY_STOP 3.0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x0227 AC Refresh 0x00ad KEY_REFRESH
0x0c 0x0228 Link Sebelumnya AC
0x0c 0x0229 AC Next Link
0x0c 0x022a Bookmark AC 0x009c KEY_BOOKMARKS 3.0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b Histori AC
0x0c 0x022c Langganan AC
0x0c 0x022d AC Zoom In 0x01a2 KEY_ZOOMIN
0x0c 0x022e AC Zoom Out 0x01a3 KEY_ZOOMOUT
0x0c 0x022f AC Zoom 0x01a4 KEY_ZOOMRESET 2
0x0c 0x0230 Tampilan Layar Penuh AC
0x0c 0x0231 Tampilan Normal AC
0x0c 0x0232 Tombol Tampilan AC
0x0c 0x0233 AC Scroll Up 0x00b1 KEY_SCROLLUP 3.0 0x005c KEYCODE_PAGE_UP
0x0c 0x0234 AC Scroll Down 0x00b2 KEY_SCROLLDOWN 3.0 0x005d KEYCODE_PAGE_DOWN
0x0c 0x0236 AC Geser ke Kiri
0x0c 0x0237 AC Pan Right
0x0c 0x0239 AC Jendela Baru
0x0c 0x023a AC Tile Horizontally
0x0c 0x023b AC Tile Vertically
0x0c 0x023c Format AC
0x0c 0x023d Edit AC
0x0c 0x023e AC Bold
0x0c 0x023f Miring AC
0x0c 0x0240 Garis Bawah AC
0x0c 0x0241 Coret AC
0x0c 0x0242 Subskrip AC
0x0c 0x0243 Superskrip AC
0x0c 0x0244 AC Semua Huruf Besar
0x0c 0x0245 AC Rotate
0x0c 0x0246 Ubah Ukuran AC
0x0c 0x0247 AC Balik horizontal
0x0c 0x0248 AC Flip Vertical
0x0c 0x0249 AC Mirror Horizontal
0x0c 0x024a AC Mirror Vertical
0x0c 0x024b Pilihan Font AC
0x0c 0x024c Warna Font AC
0x0c 0x024d Ukuran Font AC
0x0c 0x024e AC Justify Left
0x0c 0x024f AC Justify Center H
0x0c 0x0250 AC Justify Right
0x0c 0x0251 AC Justify Block H
0x0c 0x0252 AC Justify Top
0x0c 0x0253 AC Justify Center V
0x0c 0x0254 AC Justify Bottom
0x0c 0x0255 AC Justify Block V
0x0c 0x0256 Penurunan Inden AC
0x0c 0x0257 Peningkatan Inden AC
0x0c 0x0258 Daftar Bernomor AC
0x0c 0x0259 Penomoran Mulai Ulang AC
0x0c 0x025a Daftar Berbutir AC
0x0c 0x025b Promosi AC
0x0c 0x025c Penurunan AC
0x0c 0x025d AC Ya
0x0c 0x025e No. AC
0x0c 0x025f Pembatalan AC 0x00df KEY_CANCEL
0x0c 0x0260 Katalog AC
0x0c 0x0261 AC Beli / Checkout
0x0c 0x0262 AC Tambahkan ke Keranjang
0x0c 0x0263 AC Expand
0x0c 0x0264 AC Luaskan Semua
0x0c 0x0265 Penciutan AC
0x0c 0x0266 AC Ciutkan Semua
0x0c 0x0267 Pratinjau Cetak AC
0x0c 0x0268 Tempel Khusus AC
0x0c 0x0269 Mode Sisipkan AC
0x0c 0x026a Penghapusan AC
0x0c 0x026b Kunci AC
0x0c 0x026c Buka Kunci AC
0x0c 0x026d AC Protect
0x0c 0x026e AC Unprotect
0x0c 0x026f AC Lampirkan Komentar
0x0c 0x0270 AC Delete Comment
0x0c 0x0271 AC View Comment
0x0c 0x0272 Kata Pilihan AC
0x0c 0x0273 Kalimat Pilihan AC
0x0c 0x0274 AC Select Paragraph
0x0c 0x0275 AC Select Column
0x0c 0x0276 AC Select Row
0x0c 0x0277 Tabel Pilihan AC
0x0c 0x0278 AC Select Object
0x0c 0x0279 AC Ulangi / Ulangi 0x00b6 KEY_REDO
0x0c 0x027a Pengurutan AC
0x0c 0x027b AC Urutkan Naik
0x0c 0x027c AC Urutkan Menurun
0x0c 0x027d Filter AC
0x0c 0x027e AC Set Clock
0x0c 0x027f Jam Tampilan AC
0x0c 0x0280 AC Pilih Zona Waktu
0x0c 0x0281 Zona Waktu Edit AC
0x0c 0x0282 AC Set Alarm
0x0c 0x0283 Alarm AC Bersih
0x0c 0x0284 Alarm Tunda AC
0x0c 0x0285 Alarm Reset AC
0x0c 0x0286 Sinkronisasi AC
0x0c 0x0287 Mengirim/Menerima AC
0x0c 0x0288 AC Send To
0x0c 0x0289 Balasan AC 0x00e8 KEY_REPLY
0x0c 0x028a AC Reply All
0x0c 0x028b AC Forward Msg 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c AC Send 0x00e7 KEY_SEND
0x0c 0x028d File Lampiran AC
0x0c 0x028e Upload AC
0x0c 0x028f Download AC (Simpan Target Sebagai)
0x0c 0x0290 AC Set Borders
0x0c 0x0291 Baris Sisipan AC
0x0c 0x0292 Menyisipkan Kolom AC
0x0c 0x0293 File Sisipan AC
0x0c 0x0294 Sisipkan Gambar AC
0x0c 0x0295 Objek Penyisipan AC
0x0c 0x0296 Simbol Sisipan AC
0x0c 0x0297 AC Simpan dan Tutup
0x0c 0x0298 Penggantian Nama AC
0x0c 0x0299 Penggabungan AC
0x0c 0x029a AC Terpisah
0x0c 0x029b AC Distribute Horizontally
0x0c 0x029c AC Distribute Vertically

Pemetaan non-HID tambahan

Pemetaan ini menjelaskan fungsi yang tidak muncul di HID, tetapi kode kunci Linux ada.

LKC Nama Kode Kunci Linux Versi AKC Nama Kode Kunci Android Catatan
0x01d0 KEY_FN 3.0 0x0077 KEYCODE_FUNCTION
0x01d1 KEY_FN_ESC 3.0 0x006f KEYCODE_ESCAPE 3
0x01d2 KEY_FN_F1 3.0 0x0083 KEYCODE_F1 3
0x01d3 KEY_FN_F2 3.0 0x0084 KEYCODE_F2 3
0x01d4 KEY_FN_F3 3.0 0x0085 KEYCODE_F3 3
0x01d5 KEY_FN_F4 3.0 0x0086 KEYCODE_F4 3
0x01d6 KEY_FN_F5 3.0 0x0087 KEYCODE_F5 3
0x01d7 KEY_FN_F6 3.0 0x0088 KEYCODE_F6 3
0x01d8 KEY_FN_F7 3.0 0x0089 KEYCODE_F7 3
0x01d9 KEY_FN_F8 3.0 0x008a KEYCODE_F8 3
0x01da KEY_FN_F9 3.0 0x008b KEYCODE_F9 3
0x01db KEY_FN_F10 3.0 0x008c KEYCODE_F10 3
0x01dc KEY_FN_F11 3.0 0x008d KEYCODE_F11 3
0x01dd KEY_FN_F12 3.0 0x008e KEYCODE_F12 3
0x01de KEY_FN_1 3.0 0x0008 KEYCODE_1 3
0x01df KEY_FN_2 3.0 0x0009 KEYCODE_2 3
0x01e0 KEY_FN_D 3.0 0x0020 KEYCODE_D 3
0x01e1 KEY_FN_E 3.0 0x0021 KEYCODE_E 3
0x01e2 KEY_FN_F 3.0 0x0022 KEYCODE_F 3
0x01e3 KEY_FN_S 3.0 0x002f KEYCODE_S 3
0x01e4 KEY_FN_B 3.0 0x001e KEYCODE_B 3

Kunci lama yang tidak didukung

Pemetaan ini muncul di versi Android sebelumnya, tetapi tidak konsisten dengan HID atau menggunakan kode kunci Linux non-standar. Kasus penggunaan ini tidak lagi didukung.

LKC Nama Kode Kunci Linux Versi AKC Nama Kode Kunci Android Catatan
0x00db KEY_EMAIL 1,6 0x004d KEYCODE_AT 4
"" "" 4.0 4
0x00e3 KEY_STAR 1,6 0x0011 KEYCODE_STAR 4
"" "" 4.0 4
0x00e4 KEY_SHARP 1,6 0x0012 KEYCODE_POUND 4
"" "" 4.0 4
0x00e5 KEY_SOFT1 1,6 0x0052 KEYCODE_MENU 4
"" "" 4.0 4
0x00e6 KEY_SOFT2 1,6 0x0002 KEYCODE_SOFT_RIGHT 4
"" "" 4.0 4
0x00e7 KEY_SEND 1,6 0x0005 KEYCODE_CALL 4
"" "" 4.0 4
0x00e8 KEY_CENTER 1,6 0x0017 KEYCODE_DPAD_CENTER 4
"" "" 4.0 4
0x00e9 KEY_HEADSETHOOK 1,6 0x004f KEYCODE_HEADSETHOOK 4
"" "" 4.0 4
0x00ea KEY_0_5 1,6 4
0x00eb KEY_2_5 1,6 4

Catatan

  1. Kode kunci Android yang terkait dengan kunci alfanumerik dan simbolis umum dapat bervariasi berdasarkan tata letak dan bahasa keyboard. Karena alasan historis, kode pemindaian fisik dan penggunaan HID yang terkait dengan tombol pada keyboard sering kali ditentukan secara posisional meskipun label yang dicetak pada tombol tersebut dapat bervariasi dari satu bahasa ke bahasa lainnya.

    Pada keyboard bahasa Inggris AS (QWERTY), tombol alfabet kiri atas berlabel Q. Pada keyboard bahasa Prancis (AZERTY), tombol dalam posisi yang sama berlabel A. Meskipun labelnya berbeda, pada kedua keyboard, kunci alfabet kiri atas dirujuk menggunakan penggunaan HID 0x07 0x0014 yang dipetakan ke kode kunci Linux KEY_Q.

    Jika Android dikonfigurasi dengan tata letak keyboard Inggris Amerika Serikat, kode tombol Linux KEY_Q akan dipetakan ke kode tombol Android KEYCODE_Q dan akan menghasilkan karakter 'Q' dan 'q'. Namun, jika Android dikonfigurasi dengan tata letak keyboard Prancis, kode tombol Linux KEY_Q akan dipetakan ke kode tombol Android KEYCODE_A dan akan menghasilkan karakter 'A' dan 'a'.

    Kode kunci Android biasanya mencerminkan interpretasi kunci khusus bahasa, sehingga kode kunci Android yang berbeda dapat digunakan untuk bahasa yang berbeda.

  2. 0x0c 0x022f AC Zoom ditentukan dalam HID sebagai kontrol linear, tetapi kernel memetakan sebagai kunci, yang mungkin salah.

  3. Tombol fungsi Linux KEY_FN_* dipetakan ke kode kunci yang lebih sederhana, tetapi dikirim dengan bit status meta META_FUNCTION ditetapkan ke benar.

  4. Sebelum Android Ice Cream Sandwich 4.0, tata letak tombol default berisi pemetaan untuk beberapa kode tombol tambahan yang tidak ditentukan di header kernel Linux utama. Pemetaan ini telah dihapus karena kode kunci yang sebelumnya tidak ditentukan ini telah diberi arti yang berbeda dalam versi kernel Linux yang lebih baru.

Sumber

  1. Tabel Penggunaan USB HID v1.12
  2. Kernel Linux 2.6.39: include/linux/input.h, drivers/hid/hid-input.c
  3. Android ICS: qwerty.kl, Generic.kl, KeyEvent.java