import android.hardware.input.InputManager;
import android.os.SystemClock;
import android.util.Log;
import android.view.InputDevice;
import android.view.KeyCharacterMap;
import android.view.KeyEvent;
public class InputKey {
private long mDownTime;
private int mCode;
private int mScancode;
private void sendEvent(int action, long when) {
final KeyEvent ev = new KeyEvent(mDownTime, when, action, mCode, 0,
0, KeyCharacterMap.VIRTUAL_KEYBOARD, mScancode, 0
| KeyEvent.FLAG_FROM_SYSTEM
| KeyEvent.FLAG_VIRTUAL_HARD_KEY,
InputDevice.SOURCE_KEYBOARD);
InputManager.getInstance().injectInputEvent(ev,
InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
}
public void inputKeyUpDown(int keyCode) {
mCode = keyCode;
mScancode=0;
mDownTime = SystemClock.uptimeMillis();
sendEvent(KeyEvent.ACTION_DOWN, mDownTime);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
sendEvent(KeyEvent.ACTION_UP, SystemClock.uptimeMillis());
}
public void inputKeyUpDown(int keyCode,int scanCode) {
mCode = keyCode;
mScancode=scanCode;
mDownTime = SystemClock.uptimeMillis();
sendEvent(KeyEvent.ACTION_DOWN, mDownTime);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
sendEvent(KeyEvent.ACTION_UP, SystemClock.uptimeMillis());
}
}
Android 发送按键事件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 在Android项目中,相信Eventbus大家已经很熟悉了,Eventbus是一个支持跨Module的事件发送响...
- 事件系统主要通过单例事件管理器:EventManager和事件参数:EventArgs(可以是任意类型),来进行事...
- 一、点击页面按钮,原生向JavaScript端发送事件 第一步:创建MyModule 第二步:创建MyPackag...
- 上两篇文章分别单独分析了KeyEvent在View树中分发和View获得焦点的过程,实际上这两个并不是独立的,当我...