模拟点击系统按键

发布时间 2023-06-05 11:55:10作者: 柒月下寻

private void sendEvent(int action, int code) {
    long when = SystemClock.uptimeMillis();
    final KeyEvent ev = new KeyEvent(when, when, action, code, 0 /* repeat */,
            0 /* metaState */, KeyCharacterMap.VIRTUAL_KEYBOARD, 0 /* scancode */,
            KeyEvent.FLAG_FROM_SYSTEM | KeyEvent.FLAG_VIRTUAL_HARD_KEY,
            InputDevice.SOURCE_KEYBOARD);
    InputManager.getInstance().injectInputEvent(ev, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}

点击返回键:

sendEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
sendEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK);

点击返回键:

sendEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_HOME);
sendEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HOME);

KeyCode 定义参考 import android.view.KeyEvent 中的属性