adbを使って端末にキーイベントを送る


Androidのデバッグをサポートしてくれるツール、adb(Android Debug Bridge)の便利な使い方を紹介します。adbのshellコマンドinputを使うと端末やエミュレータにキーイベント、文字列を送ることが出来ます。adbを使いこなすではファイルコピーやapkファイルのインストール方法など便利な機能を解説しています。あわせてどうぞ。

よく使うadbのコマンドは以下のとおりです。アプリケーションのインストールからデータ交換まで、頻繁に利用するコマンドをピックアップしました。

  • adb install <アプリケーション名.apk>
  • adb uninstall <com.application.packagename>
  • adb push <ローカルの転送したいファイル> <端末の転送先(/sdcard/など)>
  • adb pull <端末の取得したいファイル> <ローカルの転送先>
  • adb shell input keyevent <キーイベント>
  • adb shell input text  <文字列>

adbのshellコマンド:input

キーイベントを送るには、ターミナル(コマンドプロンプト)より以下の通り入力し、adb shellに入ります。
$ adb shell

もしpathが通っていない場合は、cdコマンドなどでAndroidのインストールディレクトリ(android-sdk-windows/など)以下のplatform-toolsに移動してください。
shellでinputと入力すれば利用方法を確認できます。

$ input

usage: input [keyevent|text]
input text
input keyevent

参考:ターミナルからIntentを投げるにも、adbの使い方についてフォローがあります。

textはEditTextなど文字入力可能なフィールドに文字を入力できます。
keyeventは、キーイベント(ハードウェアキーの有無に限らず)の送信が可能です。Android端末によって搭載されているハードウェアキーが異なります。デバッグなどで仮想的にキー入力がほしい場合や作業効率挙げるためによく使います。
なかでも頻繁に使うevent_codeを紹介します。

キーイベント名 event_code 備考
KEYCODE_HOME 3 ホームキー
KEYCODE_BACK 4 バックキー
KEYCODE_MENU 82 メニューキー
KEYCODE_SEARCH 83 検索キー
KEYCODE_CAMERA 27 カメラキー

その他のキーイベント一覧:http://developer.android.com/reference/android/view/KeyEvent.html

デバッグのお供にどうぞ。