adb shell方式
private void sendVirtualKey(int keycode){ try{ String keyCommand = "input keyevent " + keycode; Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(keyCommand); } catch (IOException e){ e.printStackTrace(); } }
Android API方式
private long mKeyRemappingSendFakeKeyDownTime; private void keyRemappingSendFakeKeyEvent(int action, int keyCode) { long eventTime = SystemClock.uptimeMillis(); if (action == KeyEvent.ACTION_DOWN) { mKeyRemappingSendFakeKeyDownTime = eventTime; } KeyEvent keyEvent = new KeyEvent(mKeyRemappingSendFakeKeyDownTime, eventTime, action, keyCode, 0); InputManager inputManager = (InputManager) mContext.getSystemService(Context.INPUT_SERVICE); inputManager.injectInputEvent(keyEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC); }