2010年12月1日水曜日

android.permission.INJECT_EVENTS



androidに外部からイベントを流せたら面白いな。
とか思っていて、Event周りを調べていたけど、
よくよく考えると、Androidのテストフレームワークって
テスト用のパッケージ作って、ソコからUI操作するし、
Monkeyとか言うテストツールも外部からイベント流しているな。
とか思ったので、Monkeyのソースを見てみたら、
injectKeyEventとかがあった。
Serviceの口として
// These can only be called when injecting events to your own window,
// or by holding the INJECT_EVENTS permission.
boolean injectKeyEvent(in KeyEvent ev, boolean sync);
boolean injectPointerEvent(in MotionEvent ev, boolean sync);
boolean injectTrackballEvent(in MotionEvent ev, boolean sync);
見たいにIWindowManager.aidlに定義してある。
なんか、外部からいじれるっぽいな。
INJECT_EVENTS
にもマニフェストの説明として普通にINJECT_EVENTSについて説明あるし。
最初からデベロッパーサイトのManifestのpermissionについての説明
を読んどけば、Androidで何が可能なのか解ってたかも。。。