屏蔽系统鼠标按键
来源:互联网 发布:数据分析公司 编辑:程序博客网 时间:2024/04/28 20:39
在一些系统开发中(例如机顶盒)有可能遇到需求不响应鼠标按键,在开发中怎么解决呢?下面我来给大家演示:
1.系统中按键的响应都是通过在ViewRootImpl中传递给View的,所以要想屏蔽按键就要在ViewRootImpl.java中寻找;
2.在setView中sWindowSession.add(mWindow, mSeq, mWindowAttributes,getHostVisibility(), mAttachInfo.mContentInsets,mInputChannel);建立View与WMS的联系这样WMS就能把消息传递给View了,但是怎么传递的呢?答案是:mInputChannel.
注册:
if (mInputChannel != null) { if (mInputQueueCallback != null) { mInputQueue = new InputQueue(mInputChannel); mInputQueueCallback.onInputQueueCreated(mInputQueue); } else { InputQueue.registerInputChannel(mInputChannel, mInputHandler, Looper.myQueue()); } }
响应回掉处理:
private final InputHandler mInputHandler = new InputHandler() { public void handleKey(KeyEvent event, InputQueue.FinishedCallback finishedCallback) { startInputEvent(finishedCallback); dispatchKey(event, true);//处理按键 } public void handleMotion(MotionEvent event, InputQueue.FinishedCallback finishedCallback) { startInputEvent(finishedCallback); dispatchMotion(event, true);//处理触摸,鼠标,摇杆等消息 } };
3.下面看dispatchMotion函数:private void dispatchMotion(MotionEvent event, boolean sendDone) { int source = event.getSource(); if ((source & InputDevice.SOURCE_CLASS_POINTER) != 0) { Log.d(TAG,"----dispatchPointer----"); dispatchPointer(event, sendDone);//在有鼠标点击事件时会调用 } else if ((source & InputDevice.SOURCE_CLASS_TRACKBALL) != 0) { dispatchTrackball(event, sendDone); Log.d(TAG,"----dispatchTrackball----"); } else { dispatchGenericMotion(event, sendDone); Log.d(TAG,"----dispatchGenericMotion----"); } }
看dispatchPointer函数,其实里面就是发送了DISPATCH_POINTER消息真正处理是在deliverPointerEvent函数;所以只需要在deliverPointerEvent函数中处理,具体代码:finishMotionEvent(event, sendDone, true);return;
- 屏蔽系统鼠标按键
- Qt 屏蔽系统按键、任务管理器、任务栏、鼠标,修改注册表
- 钩子编程(HOOK) 屏蔽所有按键鼠标及系统功能键
- javascript屏蔽键盘和鼠标按键
- 屏蔽系统按键(最简单方法)
- 窗口置顶,并且屏蔽系统按键
- 网页屏蔽鼠标左右键和键盘按键功能
- js屏蔽鼠标左右键和键盘按键功能
- 屏蔽按键
- js屏蔽右键及各种按键 js蔽打印 js屏蔽鼠标右键 js禁止复制
- 修改系统鼠标左右按键快速切换
- 屏蔽 NT 系统的下所有按键消息
- 开启/屏蔽Android 4.0系统及以上底部虚拟按键
- 怎样不屏蔽Android系统的返回按键
- 开启/屏蔽Android 4.0系统及以上底部虚拟按键
- Javascript屏蔽键盘按键
- javaScript屏蔽按键
- Javascript 屏蔽按键
- WCS学习笔记(第十一天) - 创建MyOrderItemAddCmdImpl实现重写加入购物车逻辑
- 百度2014移动研发笔试题目
- 推荐:洛阳市政府投资项目管理代建项目管理-GOVPM政府代建工程项目管理信息化方案
- 推荐灵格斯翻译软件
- 关于基本Servlet的路径配置问题(可一般化)
- 屏蔽系统鼠标按键
- 一致性hash算法 - consistent hashing
- hadoop任务调度器---azkaban网址
- 使用Express3.0实现<Node.js开发指南>中的微博系统
- SQLLite (二) :sqlite3_open, sqlite3_exec, slite3_close
- HTML5 本地数据库(SQLite) 示例
- hbase安装配置(整合到hadoop)
- 树形结构的显示隐藏
- HIVE 中内连接(JOIN ON)与LEFT SEMI JOIN查询结果不一致的分析