Happy My Life

日常とか技術とか

SendKeys

ちょっとハマったのでメモ。Android 1.5 SDKでの話。

ActivityInstrumentationTestCase2などを使いテストケースを書いていると、キー操作をよく扱う。ダイアログの選択など。

その時、SendKeysを使ってキー情報を送るのだが、Sendkeysは二通りの引数を持つ事ができる。

  • SendKeys("DPAD_DOWN DPAD_CENTER");
  • SendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER);

何かと便利なので前者の方式で作成していたのだが、キー入力タイミングの同期がちゃんと取れないらしく、キー入力の結果、テストが合格したり、不合格だったりと何かと不安定になる。

Androidソースを調べてみると、前者の方法は全然使われておらず、後者の方法しか使われてなかった。ので、後者の方法に書き換えたところ、テストに伴うキー入力が安定し、常に同じレスポンスが得られるようになった。

って事で、Testでキー操作を行いたい場合はSendKeys(KeyEvent.KEYCODE_DPAD_DOWN, KeyEvent.KEYCODE_DPAD_CENTER)みたく書きましょう、という事で。

Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容
Google Androidアプリケーション開発入門 画面作成からデバイス制御まで――基本機能の全容
日経BP社 2009-06-04
売り上げランキング : 2439

おすすめ平均 star
star入門から少し先へ進みたい方に最適だと思います
starやっと出ましたね!
star入門書として十分の内容

Amazonで詳しく見る
by G-Tools