@youtrn_redo先生の記事を元に色々実験。
http://greety.sakura.ne.jp/redo/2012/07/jb.html
ざっくり要約すると。android4.1から、kcmファイルをリソースに持たせたアプリ入れると、OS側のキーボードレイアウト一覧に出してくれるよ!って事らしい。
(kcmだけでklはだめなのね)
でまあ、完成したものをマーケットに上げました。
日本語106/109キーボードレイアウト
https://play.google.com/store/apps/details?id=net.init0.android.keyboard109
動作確認済機種:
・Nexus7(JB)
・GalaxyNexus(JB)
接続確認済キーボード:
[Bluetooth]ポケモンキーボード(Nintendo Wireless Keyboard)
[USB]その辺にあったUSBキーボード(^^;
※Appleキーボードも動作報告を頂いています
備考:
・テンキー追加してないです(手持ちに無いので、いりますかね?)
・ポケモンキーボード用に「家マーク」キーに追加でHOMEボタン割り当ててます
(他のキーボードで変な動作しないことを祈る)
以下、記録。
english_usなkeymap書き換えて日本語配列キーボードに対応させました。
元ファイル
/frameworks/base/packages/InputDevices/res/raw
keyboard_layout_english_us.kcm
変更点(①~⑪は比較して「?」となったポイント)
・key 2
shift: ‘@’ → ‘”‘
・key 6
shift: ‘^’ → ‘&’
・key 7
shift: ‘&’ → ‘\”
・key 8
shift: ‘*’ → ‘(‘
・key 9
shift: ‘(‘ → ‘)’
・key 0
shift: ‘)’ → none
・key MINUS
shift: ‘_’ → ‘=’
①EQUALSが余分
②’^’がない
⇒英語キーボードのEQUALSキーが日本語キーボードの’^’の為
key EQUALS
label: ‘=’ → ‘^’
base: ‘=’ → ‘^’
shift: ‘+’ → ‘~’
に変更
③\がない(一見BACKSLASHがそのまま使えそうだが、キーコードが違うので)
map key 124 YEN
key YEN {
label: ‘\u00a5’
base: ‘\u00a5’
shift: ‘|’
}
を追加
2列目
④’@’が無い
map key 26 AT
key AT {
label: ‘@’
base: ‘@’
shift: ‘`’
}
を追加
⑤RIGHT_BRACKETが余分にある
⇒⑧でつかうので放置
⑥BACKSLASHが余分にある
⇒⑩でつかうので放置
3列目
key SEMICOLON
shift: ‘:’ → ‘+’
⑦’:’がない
⇒⑨で解決
⑧’}’がない
⇒⑤RIGHT_BRACKETがそのまま使えるので放置。
⇒キーコードが違うので、
map key 43 RIGHT_BRACKET
を追加
⑨APOSTROPHEが余分
⇒コロンの所なので書き換え
key APOSTROPHE {
label: ‘\” → ‘:’
base: ‘\” → ‘:’
shift: ‘”‘ → ‘*’
}
4列目
⑩’\'(shiht:’_’)がない。
⇒BACKSLASHを修正
key BACKSLASH {
shift: ‘|’ → ‘_’
}
⇒キーコードが違うので、
map key 89 BACKSLASH
を追加
⑪
⇒キーコードが違うので、
map key 27 LEFT_BRACKET
を追加
googleplayにあるものを使っています。リュウドのbluetoothキーボードで使えています。
1つ確認ですが、ソースを公開される予定はあるでしょうか。少し手を入れて使いたいので。
公開予定はなかったのですが、検討しますね
ありがとうございます。ご検討をお願いします。
具体的には、英語配列にはあるが、日本語配列がない、DVORAK配列を
追加しようと思っています。英語配列のものを日本語化するよりも、すでに
日本語化されているものを変換する方が楽そうなので。
また、最近更新され、マップが追加されたことを確認しました。
新しいものについてはこれから試してみようと思います。
わたくしもソース公開希望致します。
SONYのCECH-ZKB1JPというPS3ようのBluetooth キーボードをNexus7で使っているのですが、如何せんHOME, END, PAGE UP, PAGE DOWN キーがなく、その代わりにFn押しながらF1~F12キーを押下するとプレステのコントローラーのボタンに対応しているという・・・なのでマッピングを変更してHOME, END, PAGE UP, PAGE DOWNとして認識させたいと思ってます。
CECH-ZKB1JPってトラックポイントが付いているのでマウス要らないんですよ~。これが凄く便利なんです。