我在AOSP中搜索KeyEvent所在的代码行。生成KEYCODE_ HOME。我很确定它一定在SystemUI包中的PhoneStatusBar类附近。我在PhoneStatusBar中找到了mHomeActionListener,它由导航栏视图中的OnTouchListener触发。但不存在KeyEvent。KEYCODE_HOME生成。我还没有找到那段代码。任何提示都将不胜感激。
致敬
谢谢你们的提示。
我终于弄清楚了KEYCODE_HOME
是如何生产和消费的。我的要求是在可配置的标志上禁用HOME按钮。该平台是一个自己的嵌入式设备,具有经过调整的AOSP。
主页按钮在软件包SystemUI中定义,在<code>导航栏视图中点击监听器键事件。KEYCODE_HOME是在InputDispatcher中生成的。cpp
(inputflinger包)并传递到PhoneWindowManager。WindowManagerPolicy
通过interceptKeyBeforeQueueing()
。PhoneWindowManager
使用键事件并启动主应用程序。
拦截文件 bp CreateFileA 创建或打开文件 (32位) bp OpenFile 打开文件 (32位) bp ReadFile 读文件 (32位) bp WriteFile 写文件 (32位) bp GetPrivateProfileStringA (ini文件)
拦截时间 bp GetLocalTime 获取本地时间 bp GetSystemTime 获取系统时间 bp GetFileTime 获取文件时间 bp GetTickCount 获得自系统成功启动以来所经历的毫秒数 bp GetCurrentTime 获取当前时间(16位) bp SetTimer 创建定时器 bp TimerProc 定时器超时回调函数
拦截窗口 bp CreateWindow 创建窗口 bp CreateWindowEx(A) 创建窗口 bp ShowWindow 显示窗口 bp UpdateWindow 更新窗口 bp GetWindowText(A) 获取窗口文本
拦截注册表 bp RegOpenKey(A) 打开子健 bp RegOpenKeyEx 打开子健 bp RegQueryValue(A) 查找子健 bp RegQueryValueEx 查找子健 bp RegSetValue(A) 设置子健 bp RegSetValueEx(A) 设置子健
拦截消息框 bp MessageBox(A) 创建消息框 bp MessageBoxExA 创建消息框 bp MessageBoxIndirect(A) 创建定制消息框
拦截驱动器 bp GetDriveTypeA 获取磁盘驱动器类型 bp GetLogicalDrives 获取逻辑驱动器符号 bp GetLogicalDriveStringsA 获取当前所有逻辑驱动器的根驱动器路径