0

我想启动一个键(back pe)的事件,但不按任何键。我看到了onKeyDownor之类的功能onKey,但是对于这些功能,我需要一个相应的键事件。

我也尝试在KeyEvent这里初始化一个:

KeyEvent telo = new KeyEvent(0,0,0,4,0,0,0,158,72);
onKeyDown(KeyEvent.KEYCODE_BACK, telo);

但它不起作用,可能是因为我不知道downTime,eventTime和的值deviceId

4

1 回答 1

1

如果您希望这样做是为了测试目的。Instrumentation API 允许您将关键事件发送到您自己的活动。

具体来说:

Instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);

看起来像你在找什么。

编辑:

此代码段将返回键事件发送到活动窗口。请注意,sendKeyDownUpSync()不能从主线程调用该方法。

final Instrumentation i = new Instrumentation();
Thread t = new Thread(){
    public void run(){
      i.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
    }
};
t.start();
于 2013-02-19T16:31:42.233 回答