import android.hardware.input.InputManager;
import android.os.SystemClock;
import android.view.InputDevice;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
/**
* <功能描述> 模拟发送系统按键值
*/
public class KeyEventUtils {
private static long mDownTime;
public static void sendSystemKeyEvent(int mCode) {
mDownTime = SystemClock.uptimeMillis();
sendEvent(KeyEvent.ACTION_DOWN, 0, mDownTime, mCode);
sendEvent(KeyEvent.ACTION_UP, 0, SystemClock.uptimeMillis(), mCode);
}
public static void sendEvent(int action, int flags, int mCode) {
sendEvent(action, flags, SystemClock.uptimeMillis(), mCode);
}
private static void sendEvent(int action, int flags, long when, int mCode) {
final int repeatCount = (flags & KeyEvent.FLAG_LONG_PRESS) != 0 ? 1 : 0;
final KeyEvent ev = new KeyEvent(mDownTime, when, action, mCode,
repeatCount, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0, flags
| KeyEvent.FLAG_FROM_SYSTEM
| KeyEvent.FLAG_VIRTUAL_HARD_KEY,
InputDevice.SOURCE_KEYBOARD);
InputManager.getInstance().injectInputEvent(ev,
InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}
}