事件注入event inject

注入是事件处理流程如:

1 .View 接受到上报的Touch事件,被分发到相应的View的OnTouch事件中,

2.我可以通过覆盖这个方法,向InputManager中注入KeyCode事件,如:back,home等

3. .back ,home 等注入事件,然后分别通过Activity.java,和PhoneWindowsManager.java的处理Event实现功能

在3.0中,我可以通过

1 .framework/base/SystemUI/src/com/android/systemui/policy/KeyButtonView.java

可以看到注入事件使用IwindowManager接口中injectInputEventNoWait(KeyEvent event);

这个接口实现在WindowManagerService.java中

2 .然后WindowManagerService中将事件上报给相应的当前系统,被应用或者系统处理

====================================================================

下面是3.0中Home键的处理过程

1 .framework/base/SystemUI/src/com/android/systemui/policy/KeyButtonView.java 中,通过

injectInputEventNoWait ,输入Home键的keyCode(在Manifest中使用这个view中添加Keycode属性)

2 .Home事件在PhoneWindowManager中interceptKeyBeforeDispatching方法中被处理

3 .调用launchHomeFromHotKey();方法回到Launch主页面


===================================================================

android中,有4种注入输入事件的方法分别是:

1.boolean injectKeyEvent(in KeyEvent ev,boolean sync); //注入key事件

2.boolean injectPointerEvent(in MotionEvent ev,boolean sync); //注入mouse事件

3.boolean injectTrackballEvent(in MotionEvent ev,boolean sync); //注入轨迹球事件

4.boolean injectInputEventNoWait(in InputEvent ev); //注入输入事件

这个四个方法都是通过IWindowManager.aidl 方式提供给别的进程调用的。

可利用这个接口实现,windows鼠标,keyboard等事件通过socket传送给android,android的server实现注入事件,进而模拟windows的鼠标的事件,从而达到window鼠标控制android的系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值