ポインティングデバイスの入力イベント

前述のようにAndroid 3.1ではUSB接続による周辺機器サポートのほか、キーボード以外の入力デバイス、例えばマウスやジョイスティックなどで特有の入力イベントも処理できるようになっている。詳細はリリースノートにも記載されているが、ここで簡単に紹介しよう。

例えばマウスでは、「scroll」「hover」の2つのイベントが新たに用意される。前者はスクロールホイールのような動作の取得に用いられ、後者はボタンをクリックせずにマウスカーソルを移動させる「マウスオーバー」のような動作の取得に用いられる。どちらもマウス入力では一般的な操作だが、これはタッチスクリーン端末では通常は発生しない動作だ。またジョイスティックでは通常のX-Y方向だけでなく、Hat Switchのようなサブ入力、回転、スロットル、ボタンなど、各種入力要素や軸を定義して判別できる。

周辺機器のUSB経由での接続が可能になったことで、多くのデバイスをAndroidに接続できるようになった。メリットとしてはSTBのようなTVコンソールにゲームコントローラを接続したり、自宅に持ち帰ったタブレットをマウスに接続して利用するといったことが可能になる。このほか、Androidスマートフォンやタブレットをゲームコンソール化するための専用アタッチメントの開発なども考えられるだろう。それぞれに筐体サイズやUSBポート等の位置が異なるAndroidデバイスをサポートするのは周辺機器メーカーによっては骨が折れる作業かもしれないが、今後はAndroidデバイス本体に基本的な機能を集め、USBアタッチメントで機能を拡張していくような端末がメーカーから発売される可能性があるかもしれない。

Open Accessory APIとAccessory Development Kit (ADK)

前述のように、現状の多くのAndroidデバイスではUSBホストモードをサポートしておらず、そのままではAndroidデバイスをホストとした周辺機器接続は行えない。そこで、USBホスト機能をもたないAndroidデバイスにUSB経由で周辺機器等を接続するため、USB経由で簡単に2つのデバイス間での通信が行えるよう「Open Accessory API」の提供が行われている。このAPIの特徴は「USBホスト機能を搭載した周辺機器」と「それと協調して動作するアプリ」の2種類を用意する点で、この組み合わせによりUSBホストモードを(ハードウェア的に)サポートしないAndroidデバイスにおいても、USBを介した周辺機器との接続が可能になることにある。