eing(KeyEvent event, int policyFlags, boolean
isScreenOn) {
return mWindowManagerService.mInputMonitor.interceptKeyBeforeQueueing(
event, policyFlags, isScreenOn);
}
InputMonitor.java
public int interceptKeyBeforeQueueing(
KeyEvent event, int policyFlags, boolean isScreenOn) {
return mService.mPolicy.interceptKeyBeforeQueueing(event, policyFlags, isScreenOn);
}
这里mService是WindowManagerService,mPolicy 则是如下定义(WindowManagerService中)
final WindowManagerPolicy mPolicy = PolicyManager.makeNewWindowManager();
PolicyManager.java
public static WindowManagerPolicy makeNewWindowManager() {
//sPolicy就是Policy的实例化
return sPolicy.makeNewWindowManager();
}
Policy.java
public WindowManagerPolicy makeNewWindowManager() {
return new PhoneWindowManager();
}
至此,正式调用PhoneWindowManager的实例。
因此处理hardkey的相关代码是在PhoneWindowManager中了