Klawiatury

Android obsługuje różne klawiatury, w tym specjalne klawiatury funkcyjne (sterowanie głośnością i zasilaniem), kompaktowe wbudowane klawiatury QWERTY oraz w pełni funkcjonalne klawiatury zewnętrzne w stylu komputera.

Ten dokument dotyczy tylko klawiatur fizycznych. Informacje o klawiaturze ekranowej (edytorach metod wprowadzania) znajdziesz w pakiecie Android SDK.

Klasyfikacja klawiatury

Urządzenie wejściowe jest klasyfikowane jako klawiatura, jeśli spełnia co najmniej jeden z tych warunków:

  • Urządzenie wejściowe zgłasza obecność dowolnych kodów klawiszy Linux używanych na klawiaturach, w tym 00xff lub KEY_OKKEY_MAX.

  • Urządzenie wejściowe zgłasza obecność dowolnych kodów klawiszy Linux używanych na joystickach i kontrolerach, w tym BTN_0BTN_9, BTN_TRIGGERBTN_DEAD, BTN_ABTN_THUMBR.

Obecnie joysticki są klasyfikowane jako klawiatury, ponieważ przyciski joysticków i kontrolerów są rejestrowane przez zdarzenia EV_KEY w taki sam sposób jak przyciski klawiatury. Dlatego joysticki i pady również korzystają z plików map klawiszy do konfiguracji.

Gdy urządzenie wejściowe zostanie zaklasyfikowane jako klawiatura, system wczyta plik konfiguracji urządzenia wejściowego i układ klawiatury.

Następnie system próbuje określić dodatkowe cechy urządzenia.

  • Jeśli urządzenie wejściowe ma jakiekolwiek klawisze mapowane na KEYCODE_Q, jest ono uznawane za urządzenie z klawiaturą alfabetyczną (a nie numeryczną). Funkcja klawiatury alfabetycznej jest raportowana w zasobie Configuration jako KEYBOARD_QWERTY.

  • Jeśli urządzenie wejściowe ma jakiekolwiek klawisze mapowane na KEYCODE_DPAD_UP, KEYCODE_DPAD_DOWN, KEYCODE_DPAD_LEFT, KEYCODE_DPAD_RIGHTKEYCODE_DPAD_CENTER (wszystkie muszą być obecne), urządzenie jest uważane za mające klawiaturę kierunkową. Funkcja klawiatury kierunkowej jest raportowana w obiekcie zasobu Configuration jako NAVIGATION_DPAD.

  • Jeśli urządzenie wejściowe ma jakiekolwiek przyciski mapowane na KEYCODE_BUTTON_Alub inne przyciski związane z padami, jest ono uznawane za urządzenie z padami.

Wymagania dotyczące sterownika klawiatury

  1. Sterowniki klawiatury powinny rejestrować tylko kody klawiszy, które faktycznie obsługują. Rejestrowanie nadmiarowych kodów kluczy może dezorientować algorytm klasyfikacji urządzenia lub powodować nieprawidłowe wykrywanie obsługiwanych funkcji klawiatury przez system.

  2. Sterowniki klawiatury powinny używać EV_KEY do zgłaszania naciśnięć klawiszy, używając wartości 0, aby wskazać, że klawisz został zwolniony, wartości 1, aby wskazać, że klawisz jest naciśnięty, oraz wartości większej lub równej 2, aby wskazać, że klawisz jest powtarzany automatycznie.

  3. Android wykonuje powtarzanie klawiatury. Funkcja automatycznego powtarzania powinna być wyłączona w sterowniku.

  4. Sterowniki klawiatury mogą opcjonalnie wskazywać użycie HID lub kod skanowania na niskim poziomie, wysyłając EV_MSCMSC_SCANCODE i wartością wskazującą użycie lub kod skanowania, gdy klawisz jest wciśnięty. Te informacje nie są obecnie używane przez Androida.

  5. Sterowniki klawiatury powinny obsługiwać ustawianie stanów diod LED, gdy na urządzenie jest zapisywany parametr EV_LED. Sterownik hid-input zrobi to automatycznie. W momencie pisania tego tekstu Android używał LED_CAPSLOCK, LED_SCROLLLOCKLED_NUMLOCK. Te diody LED muszą być obsługiwane tylko wtedy, gdy klawiatura rzeczywiście ma powiązane diody.

  6. Sterowniki klawiatur w przypadku wbudowanych klawiatur (np. korzystających z matrycy GPIO) powinny wysyłać zdarzenia EV_KEY o wartości 0 w przypadku wszystkich klawiszy, które są nadal wciśnięte, gdy urządzenie przechodzi w stan uśpienia. W przeciwnym razie klawisze mogą się zablokować i automatycznie powtarzać w nieskończoność.

Działanie klawiatury

Poniżej znajdziesz krótkie podsumowanie działania klawiatury na Androidzie.

  1. EventHub odczytuje nieprzetworzone zdarzenia z sterownika evdev i przypisze kody klawiszy Linuksa (czasami nazywane kodami skanowania) do kodów klawiszy Androida, korzystając z mapy rozmieszczenia klawiszy na klawiaturze.

  2. InputReader przetwarza nieprzetworzone zdarzenia i aktualizuje stan klucza meta. Jeśli na przykład naciśniesz lub puścisz lewy klawisz Shift, czytnik odpowiednio ustawi lub wyzeruje bity META_SHIFT_LEFT_ONMETA_SHIFT_ON.

  3. InputReader powiadamia InputDispatcher o wystąpieniu kluczowego zdarzenia.

  4. InputDispatcher pyta WindowManagerPolicy, co zrobić z kluczowym zdarzeniem, wywołując funkcję WindowManagerPolicy.interceptKeyBeforeQueueing. Ta metoda jest częścią ścieżki krytycznej, która odpowiada za wybudzenie urządzenia po naciśnięciu określonych klawiszy. EventHub skutecznie blokuje tryb czuwania na tej ścieżce krytycznej, aby zapewnić jej dokładne wykonanie.

  5. Jeśli klucz InputFilter jest obecnie używany, obiekt InputDispatcher daje mu możliwość wykorzystania lub przekształcenia klucza. InputFilter może służyć do wdrażania niskopoziomowych zasad ułatwień na poziomie systemu.

  6. InputDispatcher umieszcza klucz w kolejce do przetwarzania w wątku wysyłki.

  7. Gdy InputDispatcher usunie klucz z kolejki, da to WindowManagerPolicy drugą szansę na przechwycenie kluczowego zdarzenia przez wywołanie funkcji WindowManagerPolicy.interceptKeyBeforeDispatching. Ta metoda obsługuje skróty systemowe i inne funkcje.

  8. Następnie InputDispatcher określa cel kluczowego zdarzenia (okno skupienia) i czeka, aż będzie gotowy. Następnie InputDispatcher przekazuje kluczowe zdarzenie do aplikacji.

  9. W aplikacji kluczowe zdarzenie jest przekazywane w dół hierarchii widoków do widoku skupionego w celu wysłania klucza przed IME.

  10. Jeśli kluczowe zdarzenie nie jest obsługiwane w ramach przesyłania przed IME, a IME jest używane, to zdarzenie jest przekazywane do IME.

  11. Jeśli zdarzenie kluczowe nie zostało wykorzystane przez IME, rozprzestrzenia się w dół hierarchii widoków do widoku skupionego w celu standardowego rozsyłania klucza.

  12. Aplikacja informuje InputDispatcher, czy kluczowe zdarzenie zostało wywołane. Jeśli zdarzenie nie zostało wykorzystane, InputDispatcher wywołuje WindowManagerPolicy.dispatchUnhandledKey, aby zastosować zachowanie „zapasowe”. W zależności od działania zastępczego cykl przetwarzania kluczowych zdarzeń może zostać wznowiony za pomocą innego kodu klucza. Jeśli na przykład aplikacja nie obsługuje zdarzenia KEYCODE_ESCAPE, system może ponownie wysłać kluczowe zdarzenie jako zdarzenie KEYCODE_BACK.

Konfiguracja klawiatury

Zachowanie klawiatury zależy od układu klawiszy, mapy znaków i konfiguracji urządzenia wejściowego.

Więcej informacji o plikach, które uczestniczą w konfiguracji klawiatury, znajdziesz w tych sekcjach:

Właściwości

W przypadku klawiatur używane są te właściwości konfiguracji urządzenia wejściowego:

keyboard.layout

Definicja: keyboard.layout = <name>

Określa nazwę pliku z rozkładem klawiszy powiązanego z urządzeniem wejściowym, z wyjątkiem rozszerzenia .kl. Jeśli nie uda się go znaleźć, system wejściowy użyje domyślnego układu klawiszy.

Odstępy w nazwie są konwertowane na podkreślenia podczas wyszukiwania.

Więcej informacji znajdziesz w dokumentacji pliku układu klucza.

keyboard.characterMap

Definicja: keyboard.characterMap = <name>

Określa nazwę pliku mapy znaków klawiszy powiązanego z urządzeniem wejściowym (z wyjątkiem rozszerzenia .kcm). Jeśli nie uda się go znaleźć, system wejściowy użyje domyślnej mapy znaków.

Odstępy w nazwie są konwertowane na podkreślenia podczas wyszukiwania.

Więcej informacji znajdziesz w dokumentacji pliku mapy znaków klucza.

keyboard.orientationAware

Definicja: keyboard.orientationAware = 0 | 1

Określa, czy klawiatura ma reagować na zmiany orientacji wyświetlacza.

  • Jeśli wartość to 1, przyciski klawiatury kierunkowej są obracane, gdy zmienia się powiązana orientacja wyświetlacza.

  • Jeśli wartość to 0, klawiatura jest odporna na zmiany orientacji wyświetlacza.

Wartość domyślna to 0.

Orientacja jest używana do obsługi obracania klawiszy kierunkowych na klawiaturze, na przykład w przypadku telefonu Motorola Droid. Jeśli na przykład urządzenie zostanie obrócone o 90 stopni zgodnie z kierunkiem ruchu wskazówek zegara od naturalnej orientacji, przycisk KEYCODE_DPAD_UP zostanie przemapowany na KEYCODE_DPAD_RIGHT, ponieważ przycisk „w górę” będzie wskazywać w prawo, gdy urządzenie będzie trzymane w tej orientacji.

keyboard.builtIn

Definicja: keyboard.builtIn = 0 | 1

Określa, czy klawiatura jest wbudowana (fizycznie podłączona).

Wartość domyślna to 1, jeśli nazwa urządzenia kończy się na -keypad, a w przeciwnym razie – 0.

Wbudowanej klawiaturze zawsze przypisywany jest identyfikator urządzenia 0. Innym klawiaturom, które nie są wbudowane, przypisuje się unikalne identyfikatory urządzeń o wartościach innych niż 0.

Używanie identyfikatora 0 dla wbudowanej klawiatury jest ważne ze względu na zgodność z polem KeyCharacterMap.BUILT_IN_KEYBOARD, które określa identyfikator wbudowanej klawiatury i ma wartość 0. To pole zostało wycofane z interfejsu API, ale starsze aplikacje mogą z niego nadal korzystać.

Klawiatura o funkcji specjalnej (czyli taka, której mapa klawiszy określa typ SPECIAL_FUNCTION) nigdy nie zostanie zarejestrowana jako wbudowana klawiatura, niezależnie od ustawienia tej właściwości. Dzieje się tak, ponieważ klawiatura do specjalnych funkcji nie jest z założenia przeznaczona do ogólnego pisania.

Przykładowe konfiguracje

# 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

Uwagi dotyczące zgodności

Przed wersją Honeycomb maper danych wejściowych klawiatury nie używał żadnych właściwości konfiguracji. Zakładano, że wszystkie klawiatury są fizycznie podłączone i mają rozpoznawanie orientacji. Domyślny układ klawiszy i mapa znaków klawiszy miały nazwę qwerty zamiast Generic. Format mapy klawiszy był też bardzo różny, a ramka nie obsługiwała pełnych klawiatur w stylu komputera PC ani klawiatur zewnętrznych.

Podczas aktualizacji urządzeń do Honeycomb utwórz lub zaktualizuj niezbędne pliki konfiguracji i mapy kluczy.

Zastosowania HID, kody klawiszy Linux i Android

System odwołuje się do kluczy za pomocą kilku różnych identyfikatorów, w zależności od poziomu abstrakcji.

W przypadku urządzeń HID każdemu kluczowi odpowiada jedno użycie. Za parsowanie raportów HID i mapowanie ich zastosowań na kody klawiszy Linuxa odpowiadają sterownik hid-input w Linuxie oraz powiązane z nim sterowniki HID producenta i urządzenia.

Gdy Android odczytuje zdarzenia EV_KEY z jądra Linuksa, przekształci każdy kod klawisza Linuksa w odpowiadający mu kod klawisza Androida zgodnie z plikiem układu klawiszy urządzenia.

Gdy kluczowe zdarzenie zostanie wysłane do aplikacji, instancja android.view.KeyEvent zgłasza kod klucza Linuxa jako wartość parametru getScanCode(), a kod klucza Androida jako wartość parametru getKeyCode(). W ramach tego frameworka istotna jest tylko wartość getKeyCode().

Pamiętaj, że informacje o użyciu interfejsu HID nie są używane przez system Android ani przekazywane aplikacjom.

Tabele kodu

Poniższe tabele pokazują, jak powiązane są ze sobą zastosowania HID, kody klawiszy Linux i kody klawiszy Android.

Kolumna LKC określa kod klucza Linuksa w formacie szesnastkowym.

Kolumna AKC określa kod klucza Androida w formacie szesnastkowym.

Kolumna Notatki odnosi się do notatek opublikowanych po tabeli.

Kolumna Wersja określa pierwszą wersję platformy Android, która uwzględniła ten klucz w domyślnej mapie kluczy. W przypadku, gdy domyślna mapa klawiszy zmieniła się między wersjami, wyświetlane są 2 wiersze. Najstarsza wskazana wersja to 1.6.

  • W wersji Gingerbread (2.3) i wcześniejszych domyślną mapą kluczy byłaqwerty.kl. Ta mapa klawiszy była przeznaczona tylko do użytku z emulatorem Androida i nie była przeznaczona do obsługi dowolnych zewnętrznych klawiatur. Mimo to kilku producentów OEM wprowadziło na platformie obsługę klawiatury Bluetooth, korzystając z funkcji qwerty.kl do mapowania klawiatury. W związku z tym starsze mapowania mogą być przydatne dla producentów sprzętu oryginalnego, którzy tworzą urządzenia peryferyjne do tych konkretnych urządzeń. Pamiętaj, że mapowania te znacznie różnią się od obecnych, zwłaszcza w przypadku traktowania klucza HOME. Zaleca się, aby wszystkie nowe urządzenia peryferyjne były opracowywane zgodnie z schematem Honeycomb lub nowszymi mapami klawiszy (np. standardem HID).

  • Od wersji Honeycomb (3.0) domyślną mapą kluczy jest Generic.kl. Ta mapa klawiszy została zaprojektowana z myślą o klawiaturach w pełnej wersji dla komputerów PC. Większość funkcji standardowych klawiatur HID powinna działać od razu po podłączeniu.

Mapowanie kodu klawiszy może się różnić w zależności od wersji jądra Linuksa i Androida. Jeśli wiadomo, że w domyślnych mapach kluczy Androida zaszły zmiany, są one wskazywane w kolumnie wersji.

Sterowniki HID i mapy klawiszy przeznaczone dla konkretnego urządzenia mogą stosować inne mapowania niż te wskazane tutaj.

Strona klawiatury i klawiatury numerycznej HID (0x07)

Użycie HID Nazwa wykorzystania HID LKC Nazwa kodu klucza systemu Linux Wersja AKC Nazwa kodu klucza na Androida Uwagi
0x07 0x0001 Błąd klawiatury
0x07 0x0002 Błąd POST klawiatury
0x07 0x0003 Keyboard Error Undefined
0x07 0x0004 Klawiatura a i A 0x001e KEY_A 1,6 0x001d KEYCODE_A 1
0x07 0x0005 Klawiatura b i B 0x0030 KEY_B 1,6 0x001e KEYCODE_B 1
0x07 0x0006 Klawiatura c i C 0x002e KEY_C 1,6 0x001f KEYCODE_C 1
0x07 0x0007 Klawiatura d i D 0x0020 KEY_D 1,6 0x0020 KEYCODE_D 1
0x07 0x0008 Klawiatura e i E 0x0012 KEY_E 1,6 0x0021 KEYCODE_E 1
0x07 0x0009 Klawiatura f i F 0x0021 KEY_F 1,6 0x0022 KEYCODE_F 1
0x07 0x000a Klawiatura G i g 0x0022 KEY_G 1,6 0x0023 KEYCODE_G 1
0x07 0x000b Klawiatura h i H 0x0023 KEY_H 1,6 0x0024 KEYCODE_H 1
0x07 0x000c Klawiatura i I 0x0017 KEY_I 1,6 0x0025 KEYCODE_I 1
0x07 0x000d Klawiatura J i J 0x0024 KEY_J 1,6 0x0026 KEYCODE_J 1
0x07 0x000e Klawiatura k i K 0x0025 KEY_K 1,6 0x0027 KEYCODE_K 1
0x07 0x000f Klawiatura L i l 0x0026 KEY_L 1,6 0x0028 KEYCODE_L 1
0x07 0x0010 Klawiatura m i M 0x0032 KEY_M 1,6 0x0029 KEYCODE_M 1
0x07 0x0011 Klawiatura n i N 0x0031 KEY_N 1,6 0x002a KEYCODE_N 1
0x07 0x0012 Klawiatura o i O 0x0018 KEY_O 1,6 0x002b KEYCODE_O 1
0x07 0x0013 Klawiatura P i P 0x0019 KEY_P 1,6 0x002c KEYCODE_P 1
0x07 0x0014 Klawiatura Q i Q 0x0010 KEY_Q 1,6 0x002d KEYCODE_Q 1
0x07 0x0015 Klawiatura r i R 0x0013 KEY_R 1,6 0x002e KEYCODE_R 1
0x07 0x0016 Klawiatura S i S 0x001f KEY_S 1,6 0x002f KEYCODE_S 1
0x07 0x0017 Klawiatura T i T 0x0014 KEY_T 1,6 0x0030 KEYCODE_T 1
0x07 0x0018 Klawiatura U i U 0x0016 KEY_U 1,6 0x0031 KEYCODE_U 1
0x07 0x0019 Klawiatura V i V 0x002f KEY_V 1,6 0x0032 KEYCODE_V 1
0x07 0x001a Klawiatura w i W 0x0011 KEY_W 1,6 0x0033 KEYCODE_W 1
0x07 0x001b Klawiatura x i X 0x002d KEY_X 1,6 0x0034 KEYCODE_X 1
0x07 0x001c Klawiatura y i Y 0x0015 KEY_Y 1,6 0x0035 KEYCODE_Y 1
0x07 0x001d Klawiatura z i Z 0x002c KEY_Z 1,6 0x0036 KEYCODE_Z 1
0x07 0x001e Klawiatura 1 i ! 0x0002 KEY_1 1,6 0x0008 KEYCODE_1 1
0x07 0x001f Klawiatura 2 i @ 0x0003 KEY_2 1,6 0x0009 KEYCODE_2 1
0x07 0x0020 Klawiatura 3 i # 0x0004 KEY_3 1,6 0x000a KEYCODE_3 1
0x07 0x0021 Klawiatura 4 i $ 0x0005 KEY_4 1,6 0x000b KEYCODE_4 1
0x07 0x0022 Klawiatura 5 i % 0x0006 KEY_5 1,6 0x000c KEYCODE_5 1
0x07 0x0023 Klawiatura 6 i ^ 0x0007 KEY_6 1,6 0x000d KEYCODE_6 1
0x07 0x0024 Klawiatura 7 i & 0x0008 KEY_7 1,6 0x000e KEYCODE_7 1
0x07 0x0025 Klawiatura 8 i * 0x0009 KEY_8 1,6 0x000f KEYCODE_8 1
0x07 0x0026 Klawiatura 9 i ( 0x000a KEY_9 1,6 0x0010 KEYCODE_9 1
0x07 0x0027 Klawiatura 0 i ). 0x000b KEY_0 1,6 0x0007 KEYCODE_0 1
0x07 0x0028 Klawiatura – klawisz Return (Enter) 0x001c KEY_ENTER 1,6 0x0042 KEYCODE_ENTER 1
0x07 0x0029 Klawiatura ESCAPE 0x0001 KEY_ESC 3,0 0x006f KEYCODE_ESCAPE
"" "" "" "" 2.3 0x0004 KEYCODE_BACK
0x07 0x002a Klawisz DELETE (Backspace) 0x000e KEY_BACKSPACE 1,6 0x0043 KEYCODE_DEL
0x07 0x002b Karta Klawiatura 0x000f KEY_TAB 1,6 0x003d KEYCODE_TAB
0x07 0x002c Spacja na klawiaturze 0x0039 KEY_SPACE 1,6 0x003e KEYCODE_SPACE
0x07 0x002d Klawiatura – i _ 0x000c KEY_MINUS 1,6 0x0045 KEYCODE_MINUS 1
0x07 0x002e Klawiatura = i + 0x000d KEY_EQUAL 1,6 0x0046 KEYCODE_EQUALS 1
0x07 0x002f Klawiatura [ i { 0x001a KEY_LEFTBRACE 1,6 0x0047 KEYCODE_LEFT_BRACKET 1
0x07 0x0030 Klawiatura ] i {} 0x001b KEY_RIGHTBRACE 1,6 0x0048 KEYCODE_RIGHT_BRACKET 1
0x07 0x0031 Klawiatura \ i | 0x002b KEY_BACKSLASH 1,6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0032 Klawiatura nieamerykańska # i ~ 0x002b KEY_BACKSLASH 1,6 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0033 Klawiatura ; i : 0x0027 KEY_SEMICOLON 1,6 0x004a KEYCODE_SEMICOLON 1
0x07 0x0034 Klawiatura i „ 0x0028 KEY_APOSTROPHE 1,6 0x004b KEYCODE_APOSTROPHE 1
0x07 0x0035 Klawiatura ` i ~ 0x0029 KEY_GRAVE 3,0 0x0044 KEYCODE_GRAVE 1
0x07 0x0036 Klawiatura , i < 0x0033 KEY_COMMA 1,6 0x0037 KEYCODE_COMMA 1
0x07 0x0037 Klawiatura . i > 0x0034 KEY_DOT 1,6 0x0038 KEYCODE_PERIOD 1
0x07 0x0038 Klawiatura / i ? 0x0035 KEY_SLASH 1,6 0x004c KEYCODE_SLASH 1
0x07 0x0039 Klawiatura Caps Lock 0x003a KEY_CAPSLOCK 3,0 0x0073 KEYCODE_CAPS_LOCK
0x07 0x003a Klawiatura F1 0x003b KEY_F1 3,0 0x0083 KEYCODE_F1
"" "" "" "" 1,6 0x0052 KEYCODE_MENU
0x07 0x003b Klawiatura F2 0x003c KEY_F2 3,0 0x0084 KEYCODE_F2
"" "" "" "" 1,6 0x0002 KEYCODE_SOFT_RIGHT
0x07 0x003c Klawiatura F3 0x003d KEY_F3 3,0 0x0085 KEYCODE_F3
"" "" "" "" 1,6 0x0005 KEYCODE_CALL
0x07 0x003d Klawiatura F4 0x003e KEY_F4 3,0 0x0086 KEYCODE_F4
"" "" "" "" 1,6 0x0006 KEYCODE_ENDCALL
0x07 0x003e Klawiatura F5 0x003f KEY_F5 3,0 0x0087 KEYCODE_F5
0x07 0x003f Klawiatura F6 0x0040 KEY_F6 3,0 0x0088 KEYCODE_F6
0x07 0x0040 Klawiatura F7 0x0041 KEY_F7 3,0 0x0089 KEYCODE_F7
0x07 0x0041 Klawiatura F8 0x0042 KEY_F8 3,0 0x008a KEYCODE_F8
0x07 0x0042 Klawiatura F9 0x0043 KEY_F9 3,0 0x008b KEYCODE_F9
0x07 0x0043 Klawiatura F10 0x0044 KEY_F10 3,0 0x008c KEYCODE_F10
"" "" "" "" 2.3 0x0052 KEYCODE_MENU
0x07 0x0044 Klawiatura F11 0x0057 KEY_F11 3,0 0x008d KEYCODE_F11
0x07 0x0045 Klawiatura F12 0x0058 KEY_F12 3,0 0x008e KEYCODE_F12
0x07 0x0046 Klawiatura Print Screen 0x0063 KEY_SYSRQ 3,0 0x0078 KEYCODE_SYSRQ
0x07 0x0047 Blokada klawiatury Scroll Lock 0x0046 KEY_SCROLLLOCK 3,0 0x0074 KEYCODE_SCROLL_LOCK
0x07 0x0048 Klawiatura – Wstrzymaj 0x0077 KEY_PAUSE 3,0 0x0079 KEYCODE_BREAK
0x07 0x0049 Wstawianie z klawiatury 0x006e KEY_INSERT 3,0 0x007c KEYCODE_INSERT
0x07 0x004a Klawiatura główna 0x0066 KEY_HOME 3,0 0x007a KEYCODE_MOVE_HOME
"" "" "" "" 1,6 0x0003 KEYCODE_HOME
0x07 0x004b Klawiatura Strona w górę 0x0068 KEY_PAGEUP 3,0 0x005c KEYCODE_PAGE_UP
0x07 0x004c Klawiatura – usuwanie do przodu 0x006f KEY_DELETE 3,0 0x0070 KEYCODE_FORWARD_DEL
0x07 0x004d Klawiatura – klawisz End 0x006b KEY_END 3,0 0x007b KEYCODE_MOVE_END
"" "" "" "" 1,6 0x0006 KEYCODE_ENDCALL
0x07 0x004e Klawiatura Page Down 0x006d KEY_PAGEDOWN 3,0 0x005d KEYCODE_PAGE_DOWN
0x07 0x004f Strzałka w prawo na klawiaturze 0x006a KEY_RIGHT 1,6 0x0016 KEYCODE_DPAD_RIGHT
0x07 0x0050 Strzałka w lewo 0x0069 KEY_LEFT 1,6 0x0015 KEYCODE_DPAD_LEFT
0x07 0x0051 Strzałka w dół 0x006c KEY_DOWN 1,6 0x0014 KEYCODE_DPAD_DOWN
0x07 0x0052 Strzałka w górę 0x0067 KEY_UP 1,6 0x0013 KEYCODE_DPAD_UP
0x07 0x0053 Klawiatura Num Lock i Wyczyść 0x0045 KEY_NUMLOCK 3,0 0x008f KEYCODE_NUM_LOCK
0x07 0x0054 Klawiatura / 0x0062 KEY_KPSLASH 3,0 0x009a KEYCODE_NUMPAD_DIVIDE
0x07 0x0055 Klawiatura * 0x0037 KEY_KPASTERISK 3,0 0x009b KEYCODE_NUMPAD_MULTIPLY
0x07 0x0056 Klawiatura – 0x004a KEY_KPMINUS 3,0 0x009c KEYCODE_NUMPAD_SUBTRACT
0x07 0x0057 Klawiatura + 0x004e KEY_KPPLUS 3,0 0x009d KEYCODE_NUMPAD_ADD
0x07 0x0058 Klawiatura ENTER 0x0060 KEY_KPENTER 3,0 0x00a0 KEYCODE_NUMPAD_ENTER
0x07 0x0059 Klawiatura 1 i End 0x004f KEY_KP1 3,0 0x0091 KEYCODE_NUMPAD_1
0x07 0x005a Klawiatura 2 i strzałka w dół 0x0050 KEY_KP2 3,0 0x0092 KEYCODE_NUMPAD_2
0x07 0x005b Klawiatura 3 i PageDn 0x0051 KEY_KP3 3,0 0x0093 KEYCODE_NUMPAD_3
0x07 0x005c Klawiatura numeryczna 4 i strzałka w lewo 0x004b KEY_KP4 3,0 0x0094 KEYCODE_NUMPAD_4
0x07 0x005d Klawiatura 5 0x004c KEY_KP5 3,0 0x0095 KEYCODE_NUMPAD_5
0x07 0x005e Klawiatura numeryczna 6 i strzałka w prawo 0x004d KEY_KP6 3,0 0x0096 KEYCODE_NUMPAD_6
0x07 0x005f Klawiatura 7 i przycisk Wróć 0x0047 KEY_KP7 3,0 0x0097 KEYCODE_NUMPAD_7
0x07 0x0060 Klawiatura 8 i strzałka w górę 0x0048 KEY_KP8 3,0 0x0098 KEYCODE_NUMPAD_8
0x07 0x0061 Klawiatura 9 i Page Up 0x0049 KEY_KP9 3,0 0x0099 KEYCODE_NUMPAD_9
0x07 0x0062 Klawiatura 0 i Insert 0x0052 KEY_KP0 3,0 0x0090 KEYCODE_NUMPAD_0
0x07 0x0063 Klawiatura . i Usuń 0x0053 KEY_KPDOT 3,0 0x009e KEYCODE_NUMPAD_DOT
0x07 0x0064 Klawiatura poza USA \ and | 0x0056 KEY_102ND 4.0 0x0049 KEYCODE_BACKSLASH 1
0x07 0x0065 Aplikacja do obsługi klawiatury 0x007f KEY_COMPOSE 3,0 0x0052 KEYCODE_MENU
"" "" "" "" 1,6 0x0054 KEYCODE_SEARCH
0x07 0x0066 Klawiatura Power 0x0074 KEY_POWER 1,6 0x001a KEYCODE_POWER
0x07 0x0067 Klawiatura = 0x0075 KEY_KPEQUAL 3,0 0x00a1 KEYCODE_NUMPAD_EQUALS
0x07 0x0068 Klawiatura F13 0x00b7 KEY_F13
0x07 0x0069 Klawiatura F14 0x00b8 KEY_F14
0x07 0x006a Klawiatura F15 0x00b9 KEY_F15
0x07 0x006b Klawiatura F16 0x00ba KEY_F16
0x07 0x006c Klawiatura F17 0x00bb KEY_F17
0x07 0x006d Klawiatura F18 0x00bc KEY_F18
0x07 0x006e Klawiatura F19 0x00bd KEY_F19
0x07 0x006f Klawiatura F20 0x00be KEY_F20
0x07 0x0070 Klawiatura F21 0x00bf KEY_F21
0x07 0x0071 Klawiatura F22 0x00c0 KEY_F22
0x07 0x0072 Klawiatura F23 0x00c1 KEY_F23
0x07 0x0073 Klawiatura F24 0x00c2 KEY_F24
0x07 0x0074 Klawiatura Wykonaj 0x0086 KEY_OPEN
0x07 0x0075 Pomoc do klawiatury 0x008a KEY_HELP
0x07 0x0076 Menu klawiatury 0x0082 KEY_PROPS
0x07 0x0077 Wybór klawiatury 0x0084 KEY_FRONT
0x07 0x0078 Klawiatura – przycisk Stop 0x0080 KEY_STOP 3,0 0x0056 KEYCODE_MEDIA_STOP
0x07 0x0079 Keyboard Again 0x0081 KEY_AGAIN
0x07 0x007a Cofnij na klawiaturze 0x0083 KEY_UNDO
0x07 0x007b Keyboard Cut 0x0089 KEY_CUT
0x07 0x007c Tekst na klawiaturze 0x0085 KEY_COPY
0x07 0x007d Wklej z klawiatury 0x0087 KEY_PASTE
0x07 0x007e Znajdowanie za pomocą klawiatury 0x0088 KEY_FIND
0x07 0x007f Wyciszenie klawiatury 0x0071 KEY_MUTE 3,0 0x00a4 KEYCODE_VOLUME_MUTE
0x07 0x0080 Zwiększanie głośności klawiatury 0x0073 KEY_VOLUMEUP 1,6 0x0018 KEYCODE_VOLUME_UP
0x07 0x0081 Klawiatura – zmniejsz głośność 0x0072 KEY_VOLUMEDOWN 1,6 0x0019 KEYCODE_VOLUME_DOWN
0x07 0x0082 Blokowanie klawisza Caps Lock na klawiaturze
0x07 0x0083 Blokowanie klawiatury Num Lock
0x07 0x0084 Blokada klawiatury Scroll Lock
0x07 0x0085 Klawiatura – przecinek 0x0079 KEY_KPCOMMA 3,0 0x009f KEYCODE_NUMPAD_COMMA
0x07 0x0086 Znak równości na klawiaturze
0x07 0x0087 Klawiatura międzynarodowa1 0x0059 KEY_RO
0x07 0x0088 Klawiatura międzynarodowa2 0x005d KEY_KATAKANAHIRAGANA
0x07 0x0089 Klawiatura międzynarodowa3 0x007c KEY_YEN
0x07 0x008a Klawiatura międzynarodowa4 0x005c KEY_HENKAN
0x07 0x008b Klawiatura międzynarodowa5 0x005e KEY_MUHENKAN
0x07 0x008c Klawiatura międzynarodowa6 0x005f KEY_KPJPCOMMA
0x07 0x008d Klawiatura międzynarodowa7
0x07 0x008e Klawiatura międzynarodowa8
0x07 0x008f Klawiatura międzynarodowa9
0x07 0x0090 Klawiatura LANG1 0x007a KEY_HANGEUL
0x07 0x0091 Klawiatura LANG2 0x007b KEY_HANJA
0x07 0x0092 Klawiatura LANG3 0x005a KEY_KATAKANA
0x07 0x0093 Klawiatura LANG4 0x005b KEY_HIRAGANA
0x07 0x0094 Klawiatura LANG5 0x0055 KEY_ZENKAKUHANKAKU
0x07 0x0095 Klawiatura LANG6
0x07 0x0096 Klawiatura LANG7
0x07 0x0097 Klawiatura LANG8
0x07 0x0098 Klawiatura LANG9
0x07 0x0099 Klawiatura Alternatywny przycisk usuwania
0x07 0x009a Klawiatura SysReq/Uwaga
0x07 0x009b Klawiatura Anuluj
0x07 0x009c Wyczyść klawiaturę
0x07 0x009d Klawiatura Prior
0x07 0x009e Powrót do klawiatury
0x07 0x009f Separator klawiatury
0x07 0x00a0 Klawiatura
0x07 0x00a1 Klawiatura Opery
0x07 0x00a2 Klawiatura Wyczyść/Jeszcze raz
0x07 0x00a3 Keyboard CrSel/Props
0x07 0x00a4 Klawiatura ExSel
0x07 0x00b0 Klawiatura 00
0x07 0x00b1 Klawiatura 000
0x07 0x00b2 Separator tysięcy
0x07 0x00b3 Separator dziesiętny
0x07 0x00b4 Jednostka waluty
0x07 0x00b5 Podjednostka waluty
0x07 0x00b6 Klawiatura ( 0x00b3 KEY_KPLEFTPAREN 3,0 0x00a2 KEYCODE_NUMPAD_LEFT_PAREN
0x07 0x00b7 Klawiatura ) 0x00b4 KEY_KPRIGHTPAREN 3,0 0x00a3 KEYCODE_NUMPAD_RIGHT_PAREN
0x07 0x00b8 Keypad {
0x07 0x00b9 Klawiatura }
0x07 0x00ba Karta Klawiatura
0x07 0x00bb Klawiatura Backspace
0x07 0x00bc Klawiatura A
0x07 0x00bd Klawiatura B
0x07 0x00be Klawiatura C
0x07 0x00bf Klawiatura D
0x07 0x00c0 Klawiatura E
0x07 0x00c1 Klawiatura F
0x07 0x00c2 Klawiatura XOR
0x07 0x00c3 Klawiatura ^
0x07 0x00c4 Klawiatura %
0x07 0x00c5 Klawiatura <
0x07 0x00c6 Klawiatura >
0x07 0x00c7 Klawiatura i
0x07 0x00c8 Klawiatura numeryczna i 
0x07 0x00c9 Klawiatura |
0x07 0x00ca Klawiatura ||
0x07 0x00cb Klawiatura :
0x07 0x00cc Klawiatura #
0x07 0x00cd Klawiatura Space
0x07 0x00ce Klawiatura @
0x07 0x00cf Klawiatura
0x07 0x00d0 Pamięć klawiatury
0x07 0x00d1 Odwołanie pamięci klawiatury
0x07 0x00d2 Wyczyszczenie pamięci klawiatury
0x07 0x00d3 Klawiatura – dodawanie wspomnień
0x07 0x00d4 Klawiatura – odejmowanie pamięci
0x07 0x00d5 Klawiatura – mnożenie
0x07 0x00d6 Podziel pamięć klawiatury
0x07 0x00d7 Klawiatura +/-
0x07 0x00d8 Wyczyść klawiaturę
0x07 0x00d9 Wyczyść wpis na klawiaturze
0x07 0x00da Klawiatura binarna
0x07 0x00db Klawiatura Octal
0x07 0x00dc Klawiatura numeryczna
0x07 0x00dd Klawiatura Szesnastkowy
0x07 0x00e0 Klawiatura – lewy klawisz Control 0x001d KEY_LEFTCTRL 3,0 0x0071 KEYCODE_CTRL_LEFT
0x07 0x00e1 Lewy klawisz Shift 0x002a KEY_LEFTSHIFT 1,6 0x003b KEYCODE_SHIFT_LEFT
0x07 0x00e2 Lewy Alt na klawiaturze 0x0038 KEY_LEFTALT 1,6 0x0039 KEYCODE_ALT_LEFT
0x07 0x00e3 Interfejs użytkownika klawiatury po lewej stronie 0x007d KEY_LEFTMETA 3,0 0x0075 KEYCODE_META_LEFT
0x07 0x00e4 Klawiatura – prawy przycisk 0x0061 KEY_RIGHTCTRL 3,0 0x0072 KEYCODE_CTRL_RIGHT
0x07 0x00e5 Prawy klawisz Shift 0x0036 KEY_RIGHTSHIFT 1,6 0x003c KEYCODE_SHIFT_RIGHT
0x07 0x00e6 Klawiatura Prawy Alt 0x0064 KEY_RIGHTALT 1,6 0x003a KEYCODE_ALT_RIGHT
0x07 0x00e7 Interfejs użytkownika klawiatury po prawej stronie 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

Ogólna strona komputera na urządzeniu HID (0x01)

Użycie HID Nazwa wykorzystania HID LKC Nazwa kodu klucza systemu Linux Wersja AKC Nazwa kodu klucza na Androida Uwagi
0x01 0x0081 Wyłączanie systemu 0x0074 KEY_POWER 1,6 0x001a KEYCODE_POWER
0x01 0x0082 Uśpienie systemu 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x01 0x0083 Wybudzanie systemu 0x008f KEY_WAKEUP 4.0 0x001a KEYCODE_POWER
0x01 0x0084 Menu kontekstowe systemu
0x01 0x0085 Menu główne systemu
0x01 0x0086 Menu aplikacji systemowej
0x01 0x0087 Pomoc dotycząca menu System
0x01 0x0088 Wyjście z menu systemowego
0x01 0x0089 System Menu Select
0x01 0x008a Menu systemowe w prawej części
0x01 0x008b Menu systemowe po lewej stronie
0x01 0x008c Menu systemu
0x01 0x008d Menu systemu nie działa
0x01 0x008e Uruchomienie systemu „na zimno”
0x01 0x008f Ciepły restart systemu
0x01 0x00a0 System Dock
0x01 0x00a1 System Undock
0x01 0x00a2 Konfiguracja systemu
0x01 0x00a3 Przerwa w działaniu systemu
0x01 0x00a4 Przerwanie w systemie debugera
0x01 0x00a5 Przerwa w aplikacji
0x01 0x00a6 Debuger aplikacji – punkt przerwania
0x01 0x00a7 Wyciszenie głośnika systemowego
0x01 0x00a8 Hibernacja systemu
0x01 0x00b0 Odwrócenie wyświetlania systemu
0x01 0x00b1 Wyświetlacz wewnętrzny systemu
0x01 0x00b2 Wyświetlacz zewnętrzny systemu
0x01 0x00b3 System Wyświetl oba
0x01 0x00b4 System Display Dual
0x01 0x00b5 System Display Toggle Int/Ext
0x01 0x00b6 System Display Swap Prim./Sec.
0x01 0x00b7 System wyświetlania LCD Autoscale

Strona konsumenta HID (0x0c)

Użycie HID Nazwa wykorzystania HID LKC Nazwa kodu klucza systemu Linux Wersja AKC Nazwa kodu klucza na Androida Uwagi
0x0c 0x0030 Moc
0x0c 0x0031 Resetuj
0x0c 0x0032 Sen
0x0c 0x0033 Sen po
0x0c 0x0034 Tryb uśpienia 0x008e KEY_SLEEP 4.0 0x001a KEYCODE_POWER
0x0c 0x0040 Menu 0x008b KEY_MENU 1,6 0x0052 KEYCODE_MENU
0x0c 0x0041 Menu Pick
0x0c 0x0042 Menu w górę
0x0c 0x0043 Menu w dół
0x0c 0x0044 Menu po lewej stronie
0x0c 0x0045 Menu Prawe 0x0181 KEY_RIGHT
0x0c 0x0046 Menu Escape
0x0c 0x0047 Zwiększenie wartości menu
0x0c 0x0048 Zmniejszanie wartości menu
0x0c 0x0067 Przełącznik obrazu w obrazie 0x00ab KEYCODE_WINDOW Dodano w aosp/1365553
0x0c 0x0069 Czerwony przycisk menu 0x18e KEY_RED 0x00b7 KEYCODE_PROG_RED Dodano w aosp/1388616
0x0c 0x006a Zielony przycisk menu 0x18f KEY_GREEN 0x00b8 KEYCODE_PROG_GREEN Dodano w aosp/1388616
0x0c 0x006b Niebieski przycisk menu 0x191 KEY_BLUE 0x00ba KEYCODE_PROG_BLUE Dodano w aosp/1388616
0x0c 0x006c Żółty przycisk menu 0x190 KEY_YELLOW 0x00b9 KEYCODE_PROG_YELLOW Dodano w aosp/1388616
0x0c 0x0081 Przypisywanie wyboru
0x0c 0x0082 Krok trybu
0x0c 0x0083 Wycofanie ostatniego 0x0195 KEY_LAST 0xe5 KEYCODE_LAST_CHANNEL Dodano w aosp/1365551
0x0c 0x0084 Wpisz kanał
0x0c 0x0085 Zamów film
0x0c 0x0088 Media Select Computer 0x0178 KEY_PC
0x0c 0x0089 Media Select TV 0x0179 KEY_TV 3,0 0x00aa KEYCODE_TV
0x0c 0x008a Media Select WWW 0x0096 KEY_WWW 1,6 0x0040 KEYCODE_EXPLORER
0x0c 0x008b Media Select DVD 0x0185 KEY_DVD
0x0c 0x008c Media Select Telephone 0x00a9 KEY_PHONE 3,0 0x0005 KEYCODE_CALL
0x0c 0x008d Przewodnik po programie Media Select 0x016a KEY_PROGRAM 3,0 0x00ac KEYCODE_GUIDE
0x0c 0x008e Media Select Video Phone 0x01a0 KEY_VIDEOPHONE
0x0c 0x008f Media Select Games 0x01a1 KEY_GAMES
0x0c 0x0090 Media Select Messages 0x018c KEY_MEMO
0x0c 0x0091 Media Select CD 0x017f KEY_CD
0x0c 0x0092 Media Select VCR 0x017b KEY_VCR
0x0c 0x0093 Tuner Media Select 0x0182 KEY_TUNER
0x0c 0x0094 Przerwij 0x00ae KEY_EXIT
0x0c 0x0095 Pomoc 0x008a KEY_HELP
0x0c 0x0096 Taśma Media Select 0x0180 KEY_TAPE
0x0c 0x0097 Kabel Media Select 0x017a KEY_TV2
0x0c 0x0098 Media Select Satellite 0x017d KEY_SAT
0x0c 0x0099 Media Select Security
0x0c 0x009a Media Select Home 0x016e KEY_PVR 3,0 0x00ad KEYCODE_DVR
0x0c 0x0061 Napisy 0x0172 KEY_SUBTITLE 0x00af KEYCODE_CAPTIONS Dodano w aosp/1365552
0x0c 0x009c Następny kanał 0x0192 KEY_CHANNELUP 3,0 0x00a6 KEYCODE_CHANNEL_UP
0x0c 0x009d Kanały w dół 0x0193 KEY_CHANNELDOWN 3,0 0x00a7 KEYCODE_CHANNEL_DOWN
0x0c 0x009e Media Select SAP
0x0c 0x00a0 VCR Plus 0x017c KEY_VCR2
0x0c 0x00a1 Raz
0x0c 0x00a2 Codziennie
0x0c 0x00a3 Co tydzień
0x0c 0x00a4 Co miesiąc
0x0c 0x00b0 Odtwórz 0x00cf KEY_PLAY 3,0 0x007e KEYCODE_MEDIA_PLAY
0x0c 0x00b1 Wstrzymaj 0x0077 KEY_PAUSE 3,0 0x0079 KEYCODE_BREAK
0x0c 0x00b2 Nagrywaj 0x00a7 KEY_RECORD 3,0 0x0082 KEYCODE_MEDIA_RECORD
0x0c 0x00b3 Przewinięcie do przodu 0x00d0 KEY_FASTFORWARD 3,0 0x005a KEYCODE_MEDIA_FAST_FORWARD
0x0c 0x00b4 Przewiń do tyłu 0x00a8 KEY_REWIND 3,0 0x0059 KEYCODE_MEDIA_REWIND
0x0c 0x00b5 Skanowanie Następny utwór 0x00a3 KEY_NEXTSONG 3,0 0x0057 KEYCODE_MEDIA_NEXT
0x0c 0x00b6 Skanowanie poprzedniego utworu 0x00a5 KEY_PREVIOUSSONG 3,0 0x0058 KEYCODE_MEDIA_PREVIOUS
0x0c 0x00b7 Zatrzymaj 0x00a6 KEY_STOPCD 3,0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x00b8 Wysuń 0x00a1 KEY_EJECTCD 3,0 0x0081 KEYCODE_MEDIA_EJECT
0x0c 0x00b9 Losowe odtwarzanie
0x0c 0x00ba Wybierz dysk
0x0c 0x00bb Wkładanie dysku
0x0c 0x00bc Powtarzaj 0x01b7 KEY_MEDIA_REPEAT
0x0c 0x00be Ścieżka normalna
0x0c 0x00c0 Ramka do przodu
0x0c 0x00c1 Ramka z tyłu
0x0c 0x00c2 Znak
0x0c 0x00c3 Wyraźny znak
0x0c 0x00c4 Powtórzenie z uwzględnieniem oznaczenia
0x0c 0x00c5 Return To Mark
0x0c 0x00c6 Search Mark Forward
0x0c 0x00c7 Znacznik wyszukiwania wstecz
0x0c 0x00c8 Zresetuj licznik
0x0c 0x00c9 Pokaż licznik
0x0c 0x00ca Zmiana śledzenia
0x0c 0x00cb Śledzenie zmniejszenia
0x0c 0x00cc Zatrzymaj / Wysuń
0x0c 0x00cd Odtwórz/wstrzymaj 0x00a4 KEY_PLAYPAUSE 3,0 0x0055 KEYCODE_MEDIA_PLAY_PAUSE
0x0c 0x00ce Odtwórz / Pomiń
0x0c 0x00e2 Wycisz 0x0071 KEY_MUTE 3,0 0x00a4 KEYCODE_VOLUME_MUTE
0x0c 0x00e5 Wzmocnienie basów 0x00d1 KEY_BASSBOOST
0x0c 0x00e6 Tryb dźwięku przestrzennego
0x0c 0x00e7 Głośność
0x0c 0x00e8 MPX
0x0c 0x00e9 Zwiększanie głośności 0x0073 KEY_VOLUMEUP 1,6 0x0018 KEYCODE_VOLUME_UP
0x0c 0x00ea Zmniejsz głośność 0x0072 KEY_VOLUMEDOWN 1,6 0x0019 KEYCODE_VOLUME_DOWN
0x0c 0x0173 Alternatywny przyrost dźwięku 0x00de KEYCODE_MEDIA_AUDIO_TRACK Dodano w aosp/1365554
0x0c 0x0181 Konfiguracja przycisku uruchamiania AL. Narzędzie
0x0c 0x0182 Konfiguracja przycisku programowalnego AL. 0x009c KEY_BOOKMARKS 3,0 0x00ae KEYCODE_BOOKMARK
0x0c 0x0183 Konfiguracja kontroli konsumenta w AL. 0x00ab KEY_CONFIG 4.0.3 0x00d1 KEYCODE_MUSIC
0x0c 0x0184 Edytor tekstu AL 0x01a5 KEY_WORDPROCESSOR
0x0c 0x0185 Edytor tekstu AL 0x01a6 KEY_EDITOR
0x0c 0x0186 Arkusz kalkulacyjny AL 0x01a7 KEY_SPREADSHEET
0x0c 0x0187 Edytor grafik AL 0x01a8 KEY_GRAPHICSEDITOR
0x0c 0x0188 Aplikacja do prezentacji AL 0x01a9 KEY_PRESENTATION
0x0c 0x0189 Aplikacja bazy danych 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 AL Voicemail 0x01ac KEY_VOICEMAIL
0x0c 0x018d AL Kontakty / Książka adresowa 0x01ad KEY_ADDRESSBOOK 4.0.3 0x00cf KEYCODE_CONTACTS
0x0c 0x018e AL Calendar / Schedule 0x018d KEY_CALENDAR 4.0.3 0x00d0 KEYCODE_CALENDAR
0x0c 0x018f AL Task / Project Manager
0x0c 0x0190 AL Log / Journal / Timecard
0x0c 0x0191 AL Checkbook / Finance 0x00db KEY_FINANCE
0x0c 0x0192 Kalkulator AL 0x008c KEY_CALC 4.0.3 0x00d2 KEYCODE_CALCULATOR
0x0c 0x0193 AL A/V Capture / Playback
0x0c 0x0194 AL Local Machine Browser 0x0090 KEY_FILE
0x0c 0x0195 AL LAN/WAN Browser
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 AL Network Chat 0x00d8 KEY_CHAT
0x0c 0x019a AL Telephony / Dialer
0x0c 0x019b AL Logon
0x0c 0x019c AL Logoff 0x01b1 KEY_LOGOFF
0x0c 0x019d AL Logon / Logoff
0x0c 0x019e AL Terminal Lock / Screensaver 0x0098 KEY_COFFEE 4.0 0x001a KEYCODE_POWER
0x0c 0x019f Panel sterowania AL
0x0c 0x01a0 Procesor wiersza poleceń AL / Uruchom
0x0c 0x01a1 Proces AL / Menedżer zadań
0x0c 0x01a2 AL Select Task / Application
0x0c 0x01a3 AL Next Task / Application
0x0c 0x01a4 AL Previous Task / Application
0x0c 0x01a5 AL Preemptive Halt Task / App.
0x0c 0x01a6 Centrum pomocy AL Integrated 0x008a KEY_HELP
0x0c 0x01a7 Dokumenty AL 0x00eb KEY_DOCUMENTS
0x0c 0x01a8 AL Thesaurus
0x0c 0x01a9 Słownik AL
0x0c 0x01aa AL Desktop
0x0c 0x01ab Sprawdzanie pisowni AL 0x01b0 KEY_SPELLCHECK
0x0c 0x01ac Sprawdzanie gramatyki w AL
0x0c 0x01ad AL Wireless Status
0x0c 0x01ae Układ klawiatury AL
0x0c 0x01af AL Virus Protection
0x0c 0x01b0 Szyfrowanie AL
0x0c 0x01b1 AL Screen Saver
0x0c 0x01b2 AL Alarms
0x0c 0x01b3 AL Clock
0x0c 0x01b4 Przeglądarka plików AL
0x0c 0x01b5 Stan zasilania AL
0x0c 0x01b6 AL Image Browser 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 AL OEM Features / Tips Browser 0x0166 KEY_INFO
0x0c 0x01be AL OEM Help
0x0c 0x01bf AL Online Community
0x0c 0x01c0 AL Entertainment Content Browser
0x0c 0x01c1 AL Online Shopping Browser
0x0c 0x01c2 Informacje o AL SmartCard / Pomoc
0x0c 0x01c3 AL Market / Finance Browser
0x0c 0x01c4 AL Customized Corp. News Browser
0x0c 0x01c5 AL Online Activity Browser
0x0c 0x01c6 Przeglądarka wyszukiwania / badania AI
0x0c 0x01c7 AL Audio Player
0x0c 0x0201 AC New 0x00b5 KEY_NEW
0x0c 0x0202 AC Open 0x0086 KEY_OPEN
0x0c 0x0203 AC Close 0x00ce KEY_CLOSE
0x0c 0x0204 Wyjście z klimatyzacji 0x00ae KEY_EXIT
0x0c 0x0205 Maksymalizacja AC
0x0c 0x0206 AC Minimize
0x0c 0x0207 Oszczędzanie energii w klimatyzacji 0x00ea KEY_SAVE
0x0c 0x0208 AC Print 0x00d2 KEY_PRINT
0x0c 0x0209 Właściwości AC 0x0082 KEY_PROPS
0x0c 0x021a AC Undo 0x0083 KEY_UNDO
0x0c 0x021b Tekst reklamy w sieci reklamowej 0x0085 KEY_COPY
0x0c 0x021c AC Cut 0x0089 KEY_CUT
0x0c 0x021d Pasta do klimatyzacji 0x0087 KEY_PASTE
0x0c 0x021e AC Zaznacz wszystko
0x0c 0x021f AC Find 0x0088 KEY_FIND
0x0c 0x0220 AC Znajdź i zamień
0x0c 0x0221 AC Search 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 Forward 0x009f KEY_FORWARD 3,0 0x007d KEYCODE_FORWARD
0x0c 0x0226 Wyłączenie klimatyzacji 0x0080 KEY_STOP 3,0 0x0056 KEYCODE_MEDIA_STOP
0x0c 0x0227 Odświeżanie klimatyzacji 0x00ad KEY_REFRESH
0x0c 0x0228 AC Previous Link
0x0c 0x0229 AC Next Link
0x0c 0x022a Zakładki AC 0x009c KEY_BOOKMARKS 3,0 0x00ae KEYCODE_BOOKMARK
0x0c 0x022b Historia AC
0x0c 0x022c Subskrypcje 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 Widok na pełnym ekranie w klimatyzacji
0x0c 0x0231 Widok normalny klimatyzacji
0x0c 0x0232 Przełącznik widoku AC
0x0c 0x0233 AC Przewijanie w górę 0x00b1 KEY_SCROLLUP 3,0 0x005c KEYCODE_PAGE_UP
0x0c 0x0234 AC Przewiń w dół 0x00b2 KEY_SCROLLDOWN 3,0 0x005d KEYCODE_PAGE_DOWN
0x0c 0x0236 AC Pan Left
0x0c 0x0237 AC Pan Right
0x0c 0x0239 AC New Window
0x0c 0x023a Kafelek AC poziomo
0x0c 0x023b Kafelek AC w pionie
0x0c 0x023c Format AC
0x0c 0x023d Edycja AC
0x0c 0x023e AC Bold
0x0c 0x023f AC Italics
0x0c 0x0240 AC Underline
0x0c 0x0241 Przekreślenie w AC
0x0c 0x0242 AC Subscript
0x0c 0x0243 AC Superscript
0x0c 0x0244 AC All Caps
0x0c 0x0245 AC Rotate
0x0c 0x0246 Zmiana rozmiaru AC
0x0c 0x0247 AC Flip horizontal
0x0c 0x0248 AC Flip Vertical
0x0c 0x0249 AC Mirror Horizontal
0x0c 0x024a AC Mirror Vertical
0x0c 0x024b AC Font Select
0x0c 0x024c Kolor czcionki w ustawieniach klimatyzacji
0x0c 0x024d Rozmiar czcionki w układance
0x0c 0x024e AC Justify Left
0x0c 0x024f AC Justify Center H
0x0c 0x0250 Wyrównaj do prawej
0x0c 0x0251 AC Justify Block H
0x0c 0x0252 Wyrównanie górne
0x0c 0x0253 AC Justify Center V
0x0c 0x0254 AC Justify Bottom
0x0c 0x0255 AC Justify Block V
0x0c 0x0256 Zmniejszenie wcięcia AC
0x0c 0x0257 Zwiększenie wcięcia AC
0x0c 0x0258 Lista numerowana AC
0x0c 0x0259 Numerowanie ponownego uruchamiania klimatyzacji
0x0c 0x025a Lista punktowana AC
0x0c 0x025b AC Promote
0x0c 0x025c AC Demote
0x0c 0x025d AC Tak
0x0c 0x025e Numer AC
0x0c 0x025f Anulowanie AC 0x00df KEY_CANCEL
0x0c 0x0260 Katalog AC
0x0c 0x0261 AC Buy / Checkout
0x0c 0x0262 AC Dodaj do koszyka
0x0c 0x0263 AC Expand
0x0c 0x0264 AC Expand All
0x0c 0x0265 AC Collapse
0x0c 0x0266 AC Collapse All
0x0c 0x0267 Podgląd wydruku AC
0x0c 0x0268 Wklej specjalne
0x0c 0x0269 Tryb wstawiania AC
0x0c 0x026a AC Delete
0x0c 0x026b Blokada AC
0x0c 0x026c AC Unlock
0x0c 0x026d AC Protect
0x0c 0x026e AC Unprotect
0x0c 0x026f AC Attach Comment
0x0c 0x0270 AC Delete Comment
0x0c 0x0271 Komentarz do widoku AC
0x0c 0x0272 AC Select Word
0x0c 0x0273 AC Select Sentence
0x0c 0x0274 AC Select Paragraph
0x0c 0x0275 AC Wybierz kolumnę
0x0c 0x0276 AC Select Row
0x0c 0x0277 AC Select Table
0x0c 0x0278 AC Select Object
0x0c 0x0279 AC Redo / Repeat 0x00b6 KEY_REDO
0x0c 0x027a Sortowanie AC
0x0c 0x027b AC Sort Ascending
0x0c 0x027c AC Sort Descending
0x0c 0x027d Filtr AC
0x0c 0x027e AC Set Clock
0x0c 0x027f AC View Clock
0x0c 0x0280 AC Wybierz strefę czasową
0x0c 0x0281 AC Edytuj strefy czasowe
0x0c 0x0282 AC Set Alarm
0x0c 0x0283 AC Clear Alarm
0x0c 0x0284 AC Snooze Alarm
0x0c 0x0285 AC Reset Alarm
0x0c 0x0286 AC Synchronize
0x0c 0x0287 AC Send/Receive
0x0c 0x0288 AC Send To
0x0c 0x0289 Odpowiedź AC 0x00e8 KEY_REPLY
0x0c 0x028a AC Odpowiedz wszystkim
0x0c 0x028b AC Forward Msg 0x00e9 KEY_FORWARDMAIL
0x0c 0x028c AC Send 0x00e7 KEY_SEND
0x0c 0x028d AC Załącz plik
0x0c 0x028e Przesyłanie AC
0x0c 0x028f AC Download (Save Target As)
0x0c 0x0290 AC Set Borders
0x0c 0x0291 AC Insert Row
0x0c 0x0292 AC Insert Column
0x0c 0x0293 Wstawianie pliku w klimatyzacji
0x0c 0x0294 AC Wstaw obraz
0x0c 0x0295 Wstawianie obiektów
0x0c 0x0296 Symbol wstawiania AC
0x0c 0x0297 AC Zapisz i zamknij
0x0c 0x0298 Zmiana nazwy AC
0x0c 0x0299 AC Merge
0x0c 0x029a Podział AC
0x0c 0x029b AC Distribute Horizontally
0x0c 0x029c AC Distribute Vertically

Dodatkowe mapowania inne niż HID

Te mapowania opisują funkcje, które nie pojawiają się w HID, ale istnieją dla nich kody klawiszy Linuxa.

LKC Nazwa kodu klucza systemu Linux Wersja AKC Nazwa kodu klucza na Androida Uwagi
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

Starsze nieobsługiwane klucze

Te mapowania pojawiły się w poprzednich wersjach Androida, ale były niezgodne z HID lub używały niestandardowych kodów klawiszy Linuxa. Nie są one już obsługiwane.

LKC Nazwa kodu klucza systemu Linux Wersja AKC Nazwa kodu klucza na Androida Uwagi
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

Uwagi

  1. Kod klawisza Androida powiązany ze wspólnymi klawiszami alfanumerycznymi i symbolicznymi może się różnić w zależności od układu i języka klawiatury. Ze względów historycznych fizyczne kody skanowania i użycia HID związane z klawiszami na klawiaturze są często definiowane na podstawie pozycji, mimo że etykiety na tych klawiszach mogą się różnić w zależności od języka.

    Na klawiaturze QWERTY w języku angielskim (USA) lewy górny klawisz alfabetyczny jest oznaczony literą Q. Na klawiaturze francuskiej (AZERTY) klawisz w tej samej pozycji ma oznaczenie A. Pomimo etykiety na obu klawiaturach klawisz alfabetyczny w lewym górnym rogu jest określany za pomocą kodu użycia HID 0x07 0x0014, który jest mapowany na kod klawisza Linux KEY_Q.

    Jeśli Android jest skonfigurowany z użyciem układu klawiatury angielskiej (amerykańskiej), kod klawisza Linux KEY_Q zostanie przypisany do kodu klawisza Androida KEYCODE_Q i będzie generować znaki „Q” i „q”. Jeśli jednak Android jest skonfigurowany z użyciem układu klawiatury francuskiej, kod klawisza Linux KEY_Q zostanie przypisany do kodu klawisza Androida KEYCODE_A i będzie generować znaki „A” i „a”.

    Kod klucza Androida zwykle odzwierciedla interpretację klucza w danym języku, więc w różnych językach może być używany inny kod klucza Androida.

  2. 0x0c 0x022f AC Zoom jest zdefiniowany w HID jako element sterujący liniowy, ale jądro mapuje go jako klawisz, co jest prawdopodobnie nieprawidłowe.

  3. Klawisze funkcyjne Linuxa KEY_FN_* są mapowane na prostsze kody klawiszy, ale są wysyłane z metastanem META_FUNCTION, w którym bit ustawiony jest na „prawda”.

  4. Przed wersją Androida Ice Cream Sandwich 4.0 domyślny układ klawiszy zawierał mapowania niektórych dodatkowych kodów klawiszy, które nie były zdefiniowane w głównych nagłówkach jądra Linuksa. Te mapowania zostały usunięte, ponieważ wcześniej niezdefiniowane kody kluczy zostały przypisane do innych znaczeń w nowszych wersjach jądra Linuksa.

Źródła

  1. Tabele wykorzystania interfejsu HID USB w wersji 1.12
  2. Rdzeń Linuksa 2.6.39: include/linux/input.h, drivers/hid/hid-input.c
  3. Android ICS: qwerty.kl, Generic.kl, KeyEvent.java