android2.3似乎改变了KeyEvent的传递方式,没有了KeyInputQueue这个类.这样的话,我不清楚对于上层来说,KeyEvent是在哪里创建实例的?如果我想屏蔽所有的按键消息(实体键盘和虚拟键盘),有没有一个统一的处理地方呢?

解决方案 »

  1.   

    自己解决了,可以在这里处理:frameworks/base/services/java/com/android/server/InputManager.javapublic int interceptKeyBeforeQueueing(long whenNanos, int action, int flags,
                     int keyCode, int scanCode, int policyFlags, boolean isScreenOn)
      

  2.   

    如果用interceptkey来拦截事件的话,应该是放到phonewindowManager里面去进行,不管是以前的keyQ,还是现在的InputManager,最终都是要调用phonewindowManager的方法的。放在它里面,输入事件的结构改变原则上是不会对其他应用框架产生影响的