4

インストルメンテーションで実行されているアプリケーションに HOME キーを送信しても何も起こらない理由はありますか?

import android.app.Instrumentation;
import android.view.KeyEvent;

public class MyInstrumentation extends Instrumentation {

  public void sendKeys() {
    // Works reliably
    this.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);

    // Does nothing, nothing is printed to logcat
    this.sendKeyDownUpSync(KeyEvent.KEYCODE_HOME);
  }
}

これは、Robotiumを使用する場合も、 Instrumentationを直接使用する場合も同じです。動作は、エミュレーターとルート化されていないデバイスで同じです。

4

2 に答える 2

2

HOMEキーをシミュレートしたり、プログラムで実行したりできるとは思いません。私が理解しているように、これは純粋に、アプリが関与していないフレームワーク固有のイベントです。あなたがオーバーライドonKeyDown()した場合、あなたは決して気づかれないことを私は知っていますKeyEvent.KEYCODE_HOME

カテゴリCATEGORY_HOMEでインテントを起動できると思いますが、試したことはありません。

あるいは、Activity Lifecycle のようなものをテストしようとしている場合は、おそらく構成の変更をシミュレートできます。方向転換など。this.finish()または、単にアクティビティを停止することに関心がある場合は、アクティビティの場所を呼び出すことができますthis

于 2014-08-12T06:21:00.317 に答える