2016年10月17日月曜日

Android/iOS/Windows向けのbluetoothコントローラーを買って色々失敗した話

ひょんなことからBluetoothのコントローラーを買ってしまった。

<あらすじ>
まず、以前試したGalaxy Tab Sのroot化により、予想以上に便利になってしまったので、簡単なオフィスの編集やテキストメモを作ったり、調べ物をするのに使っていたが、キーボードがあるとどうにもマウスが欲しくなってくる。そこで、surfaceに使っていたArc touchマウスを繋いでみたものの、マウスの電源を切る(=伸ばす)ともう一度ペアリングをしないとダメというなんともめんどくさい結果に終わってしまったので(それに加えマルチペアリング非対応らしいので、surfaceで使うときは結局再ペアリングするハメになる)、新しいBluetoothマウスを買おうとした。
で、色々見た結果、小型のbluetoothコントローラーのマウスモードが使えるのでは、と思い購入したのがコレ(クリックでAmazonへ)






















買ったはいいものの、使ってみて重要なことに気づく。
「こいつロングタップできなくね??」
マウスとして活躍することはなさそう。
一応手持ちのGALAXY 3台とsurfaceに繋いでみたが、どれも結果は同じ。

さてどうしたものかと思い、考えた結果ミュージックアプリのリモコンにできそうだと思って使ってみたところ、再生/一時停止ボタンがない!!(詳細は後述)ことに気づき、せっかくなのでAndroidのBluetoothキーイベントの変更をやってみた。

<あらすじここまで>

さて、Androidのbluetoothキーボードのキーマップは、次のようにして決められる。

scanCode → keyCode → 実際の動作

まずscanCodeは不変の数字で、キーそれぞれの番号になる。それがKey LayoutファイルによってkeyCodeに置換され、Key Character Mapファイルで実際に入力される文字やキーイベントに置換されるという2段構造になっている。

そこで、スティック上下がデフォルトで再生速度の変更(?)になっていたのを、再生一時停止ボタンにすべく編集する。

今回は完結に済ませるために、デフォルトの設定ファイルをそのまま改変することにした。
スティック下のkeyCodeは168、上が208なのでGeneric.klの該当部分を変更する。

key 168 MEDIA_PLAY_PAUSE
key 208 MEDIA_STOP

で上書きしてBluetoothを再接続。

キーコード確認したところ、めでたく変わっていた。

<あとがき>
先程
再生/一時停止ボタンがない!!(詳細は後述)
と書いたが、電源ボタンと共用でした。ということで、結局変更しなくても良かったね、というオチが付きました。

今回は以上です。お疲れ様でした…

0 件のコメント:

コメントを投稿