Nexus 7にANKERのウルトラスリム・ミニ Bluetooth 3.0 ワイヤレスキーボードを接続したときに使われるKLファイル(Vendor_05ac_Product_0293.kl)とKCMファイル(Generic.kcm)の中身を調べて対応表を作った(長いので一番下に記載)。
この表を見ていくと、
- Androidを使う上で必須の「HOME」、「BACK」、「MENU」が定義されていない。 正確には、KCMファイルで「ESCAPE」キーのコンビネーションに割り当てられているが、肝心の「ESCAPE」に対応するLKC「1」がこのキーボードから発せられていないので入力できない。
- 「SEARCH」、「FORWARD_DEL」は「fn」キーと一緒に押す必要があり使いにくい。
これら以外にもKLファイルで定義されているがキーボードから該当コードが出ていないものもいろいろある(例:「F1」~「F10」)が、特に必要ではないと思われるので今回は触らない、必要あればKCMファイルで定義すればよいはず。
変更箇所をまとめると下表の通り。 変更はKLファイルだけで、KCMファイルは変更しない。
Vendor_05ac_Product_0239.klの変更はWindowsのNotepadでは改行にCR+LFが入ってしまうので、Notepad++を使った。
| LKC | KLファイルの定義(変更前) | KLファイルの定義(変更後) | 変更内容 |
|---|---|---|---|
| 100 | ALT_RIGHT | MENU | 右「ALT」キーに「MENU」を割り当てる |
| 111 | FORWARD_DEL | POWER | 「fn」+「Del」キー(最上段右端のキー)に「POWER」を割り当てる |
| 116 | (未定義) | FORWARD_DEL | 「Del」キー(最上段右端のキー)に「FORWARD_DEL」を割り当てる |
| 126 | META_RIGHT | HOME | 右「MRTA」キーに「HOME」を割り当てる |
| 172 | (未定義) | BACK | 「Esc」キー(最上段左端のキー)に「BACK」を割り当てる |
| 204 | (未定義) | (未定義) | |
| 217 | (未定義) | SEARCH | 「F3」キーに「SEARCH」を割り当てる |
| 229 | (未定義) | (未定義) | |
| 230 | (未定義) | (未定義) | |
| 374 | (未定義) | (未定義) |
割り当てたキーと配置は下図の通り。

キーボードが発生させるコードとKLファイル、KCMファイルとの対応表
| LKC | KBD | AKC by KL | label | base | shift | capslock | cntl | alt | alt+shift | meta | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | ESCAPE | BACK | fallback MENU | fallback HOME | fallback HOME | ||||||
| 2 | 2 | 1 | 1 | 1 | ! | ||||||
| 3 | 3 | 2 | 2 | 2 | @ | ||||||
| 4 | 4 | 3 | 3 | 3 | # | ||||||
| 5 | 5 | 4 | 4 | 4 | $ | ||||||
| 6 | 6 | 5 | 5 | 5 | % | ||||||
| 7 | 7 | 6 | 6 | 6 | ^ | ||||||
| 8 | 8 | 7 | 7 | 7 | & | ||||||
| 9 | 9 | 8 | 8 | 8 | * | ||||||
| 10 | 10 | 9 | 9 | 9 | ( | ||||||
| 11 | 11 | 0 | 0 | 0 | ) | ||||||
| 12 | 12 | MINUS | – | – | _ | ||||||
| 13 | 13 | EQUALS | = | = | + | ||||||
| 14 | 14 | DEL | |||||||||
| 15 | 15 | TAB | t | t | |||||||
| 16 | 16 | Q | Q | q | Q | Q | |||||
| 17 | 17 | W | W | w | W | W | |||||
| 18 | 18 | E | E | e | E | E | u0301 | ||||
| 19 | 19 | R | R | r | R | R | |||||
| 20 | 20 | T | T | t | T | T | |||||
| 21 | 21 | Y | Y | y | Y | Y | |||||
| 22 | 22 | U | U | u | U | U | u0308 | ||||
| 23 | 23 | I | I | i | I | I | u0302 | ||||
| 24 | 24 | O | O | o | O | O | |||||
| 25 | 25 | P | P | p | P | P | |||||
| 26 | 26 | LEFT_BRACKET | [ | [ | { | ||||||
| 27 | 27 | RIGHT_BRACKET | ] | ] | } | ||||||
| 28 | 28 | ENTER | n | n | |||||||
| 29 | 29 | CTRL_LEFT | |||||||||
| 30 | 30 | A | A | a | A | A | |||||
| 31 | 31 | S | S | s | S | S | u00df | ||||
| 32 | 32 | D | D | d | D | D | |||||
| 33 | 33 | F | F | f | F | F | |||||
| 34 | 34 | G | G | f | G | G | |||||
| 35 | 35 | H | H | h | H | H | |||||
| 36 | 36 | J | J | j | J | J | |||||
| 37 | 37 | K | K | k | K | K | |||||
| 38 | 38 | L | L | l | L | L | |||||
| 39 | 39 | SEMICOLON | ; | ; | : | ||||||
| 40 | 40 | APOSTROPHE | ’ | ’ | “ | ||||||
| 41 | 41 | GRAVE | ` | ` | ~ | u0300 | u0303 | ||||
| 42 | 42 | SHIFT_LEFT | |||||||||
| 43 | 43 | BACKSLASH | |||||||||
| 44 | 44 | Z | Z | z | Z | Z | |||||
| 45 | 45 | X | X | x | X | X | |||||
| 46 | 46 | C | C | c | C | C | u00e7 | u00e7 | |||
| 47 | 47 | V | V | v | V | V | |||||
| 48 | 48 | B | B | b | B | B | |||||
| 49 | 49 | N | N | n | N | N | |||||
| 50 | 50 | M | M | m | M | M | u0303 | ||||
| 51 | 51 | COMMA | , | , | |||||||
| 52 | 52 | PERIOD | . | . | > | ||||||
| 53 | 53 | SLASH | / | / | ? | ||||||
| 54 | 54 | SHIFT_RIGHT | |||||||||
| 56 | 56 | ALT_LEFT | |||||||||
| 57 | 57 | SPACE | ’ ’ | ’ ’ | fallback LANGUAGE_SWITCH | fallback SEARCH | fallback SEARCH | ||||
| 58 | 58 | CAPS_LOCK | |||||||||
| 59 | F1 | ||||||||||
| 60 | F2 | ||||||||||
| 61 | F3 | ||||||||||
| 62 | F4 | ||||||||||
| 63 | F5 | ||||||||||
| 64 | F6 | ||||||||||
| 65 | F7 | ||||||||||
| 66 | F8 | ||||||||||
| 67 | F9 | ||||||||||
| 68 | F10 | ||||||||||
| (中略) | |||||||||||
| 87 | F11 | ||||||||||
| 88 | F12 | ||||||||||
| (中略) | |||||||||||
| 100 | 100 | ALT_RIGHT | |||||||||
| 102 | MOVE_HOME | ||||||||||
| 103 | 103 | DPAD_UP | |||||||||
| 104 | PAGE_UP | ||||||||||
| 105 | 105 | DPAD_LEFT | |||||||||
| 106 | 106 | DPAD_RIGHT | |||||||||
| 107 | MOVE_END | ||||||||||
| 108 | 108 | DPAD_DOWN | |||||||||
| 109 | PAGE_DOWN | ||||||||||
| 110 | NUMPAD_ENTER | n | n fallback ENTER | none fallback ENTER | none fallback ENTER | none fallback ENTER | |||||
| 111 | 111 | FORWARD_DEL | |||||||||
| 113 | 113 | VOLUME_MUTE | |||||||||
| 114 | 114 | VOLUME_DOWN | |||||||||
| 115 | 115 | VOLUME_UP | |||||||||
| 116 | 116 | ||||||||||
| (中略) | |||||||||||
| 120 | 120 | APP_SWITCH | |||||||||
| (中略) | |||||||||||
| 125 | 125 | META_LEFT | |||||||||
| 126 | 126 | META_RIGHT | |||||||||
| (中略) | |||||||||||
| 161 | MEDIA_EJECT | ||||||||||
| 163 | 163 | MEDIA_NEXT | |||||||||
| 164 | 164 | MEDIA_PLAY_PAUSE | |||||||||
| 165 | 165 | MEDIA_PREVIOUS | |||||||||
| (中略) | |||||||||||
| 172 | 172 | ||||||||||
| (中略) | |||||||||||
| 204 | 204 | # show gadgets | |||||||||
| (中略) | |||||||||||
| 217 | 217 | ||||||||||
| (中略) | |||||||||||
| 224 | 224 | BRIGHTNESS_DOWN | |||||||||
| 225 | 225 | BRIGHTNESS_UP | |||||||||
| (中略) | |||||||||||
| 229 | 229 | # blank special function on F5 | |||||||||
| 230 | 230 | # blank special function on F6 | |||||||||
| (中略) | |||||||||||
| 374 | 374 | ||||||||||
| (中略) | |||||||||||
| 464 | FUNCTION |