我要启动一个按键事件(返回p.e),但不按任何键。我看到了onKeyDownonKey之类的函数,但是对于这些函数,我需要一个相应的按键事件。

我也尝试像这样初始化KeyEvent

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


但是它不起作用,可能是因为我不知道downTimeeventTimedeviceId的值。

最佳答案

如果您打算这样做是出于测试目的。 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();

10-07 19:31
查看更多