The discretion of a man deferreth his anger

; and it is his glory to pass over a transgression (Prov. 19:11 KJV) - このブログは基本的に画像処理やRTMなど技術に関することを書き連ねていきます。

Bluetooth HIDキーボードをデバイス本体にちゃんと認識させたい

ElecomのTK-FBP013というBluetooth HIDキーボードを持ってるので、何とかしてこいつをちゃんとBluetoothバイスで繋いで扱いたいなぁなんて思ってる訳ですが…。色々となんか凄い問題だらけっぽい。

『Android端末メーカ各社様、Bluetooth HIDインターフェイスと、それに対応する日本語IMEの実装をお願いします。』 from モバイルキーボードのリュウドさん&私:破壊的イノベーションでキャズム越え:オルタナティブ・ブログ

こちらのBlog記事で、どうやら色々とやってくださってるようなんですが…。
実は、以前、esmasuiさんの所のBimejiHID(http://d.hatena.ne.jp/esmasui/20100330/1269982062)を使った事がありまして、esmasuiさんに、A81Eで動作してますよ〜なtweetをしたことがあるんですが、実際使ってみると、Bluetoothバイスは機器にちゃんと接続されていない形(ペア設定・非接続のまま)でなんとなーく動いてると言う感じな上に、スタックで実装されているので、一般のPCで扱う様なIMEの挙動と全然違うと言う事がありまして、結局使わなくなってしまったわけです。まぁ、この辺は自分の我儘なんで…。ホントスイマセン。
という事で、とりあえずちゃんとHIDデバイスとして、接続が可能なのかを色々と知りたいかったので、デバイスドライバBluetooth接続設定でHIDキーボードを認識出来ないか、と探したところ、Slatedroid.comさんの所(http://www.slatedroid.com/nationite-midnite-android-tablet-discussion/7985-connecting-bluetooth-keyboard.html)にそんな記事がありました。

とりあえずそこに書いてあった手順を備忘録的に。

  • AndroidObex(http://code.google.com/p/androidobex/)さんの所から、hiddファイル(HIDドライバ)をPCにダウンロード
  • adb push /system/xbin/hidd
  • adb shell chown system.system /system/xbin/hidd
  • adb shell chmod 755 /system/xbin/hidd
  • adb shell hcitool scan
  • adb shell hidd --connect [Device MAC Adress]

あとは、なんか設定ファイル作っておいて、Bluetoothが繋がった時に上記のhidd --connectを実行してくれるやつをUpしておくと、Bluetooth接続時に勝手にちゃんと認識してくれる、という話…なんですが。
さぁ、いざConnect!とかすると、悲しい事にA81Eがうんともすんとも言わなくなってしまわれ…。デバッグしてみたところ、

  • 11-30 18:22:00.445: ERROR/BluetoothEventLoop.cpp(1143): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/1314/hci0/dev_[Mac Address]
  • 11-30 18:22:01.359: INFO/tslib(1143): New keyboard: device->id=0x10003 devname='. Keyboard' propName='hw.keyboards.65539.devname' keylayout='/system/usr/keylayout/qwerty.kl'

という2つのメッセージを残してぷつんと反応が切れてしまうわけで…。
設定ファイルまでは行ってるっぽいんで、レスポンスが無いよというところなんでしょうか…