android.hardware.faketouch

Android 3.0のSDKがリリース*1されたので、ざっくりドキュメントを読んでみた。yanzmさんが魔速で訳している*2ので、超訳はしないけど1つだけ気になる項目が。に1つ新しくandroid.hardware.faketouchが追加された。この説明だけを軽く。

o android.hardware.faketouch
 これが宣言されると、アプリケーションはタッチスクリーンのエミュレーション(もしくはそれ以上)を提供する端末とコンパチブルであることを示す。タッチスクリーンのエミュレーションを提供する端末は、タッチスクリーン機能のサブセットのエミュレーションを行えるユーザ入力システムを持つ。そのような入力システムの一例はマウスや、画面上のカーソルを制御するリモートコントロールだ。そのような入力システムは、クリックの上下やドラッグのように基本的なタッチイベントをサポートする。しかし、faketouch端末では、ジェスチャーや弾くなどのより複雑な入力タイプは、かなり難しいか不可能だ。また、マルチタッチジェスチャーはもちろん可能ではない。


 もしあなたのアプリケーションが複雑なジェスチャーを必要とせず、またエミュレートされたタッチイベントを持つ端末からあなたのアプリケーションがフィルターされたくなければ、ぜひandroid.hardware.faketouchを宣言するべきだ。こうすることで、エミュレートされたタッチ入力だけを提供する端末タイプも含めて、最も数多くの端末タイプへあなたのアプリケーションが利用可能になる。


 タッチスクリーン機能はfaketouch機能のスーパーセットとなるので、タッチスクリーンを備えたすべての端末もandroid.hardware.faketouchをサポートする。なので、本当にタッチスクリーンが必要な場合を除いて、faketouchをに追加するべきだ。


ややこしく書いているけど、ようは、ジェスチャーとかマルチタッチ必須でない限り、今後出てくるfaketouch端末対応するためにandroid.hardware.faketouchを入れてくれ、いやお願いします、という意味。つまり、Google TVのマーケットにアプリケーションを露出させたかったら、faketouch入れてね(はぁーと。