高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

Androidのinputコマンド

また会社で知ったこと。
Androidにはinputコマンドというコマンドがあり、それに引数を渡すことで任意のキーコードを処理させることができます。
たとえば、adbからなら

  adb shell input keyevent 3

というコマンドを送信することで、端末のホームキーを押下したのと同じ効果を得ることができます(3はホームキーのキーコード。オプションのkeyeventは、第二引数がキーコードの数値であることを示す値)。
なお、このinputコマンドはもちろんアプリから実行することもできて、

  Runtime.getRuntime().exec("input keyevent 3");

とやれば、アプリからでもinputコマンドが実行できます。
他に任意のキーイベントを送るのはInputMethodService(要するにIME)の持っているメソッドしかないみたいなので、便利かも*1
まあ、デバッグのお供に使うのが順当かもしれませんけどね。


ところで、キーの入力ができるので、あとはフリック操作ができれば完璧だと思うのですが、そんなコマンドはないんですかね。

*1:ちなみにこのコマンドを見つけたときはInputMethodService.sendDownUpKeyEvents()メソッドとかを必死にいじり回していたとき。わ、わたしの二日間の努力はいったい…