最近遇到一个问题,6582平台上,物理键盘默认是打开的,经过分析发现修改下面这个文件,就可以将其关闭。
frameworks/base/services/java/com/android/server/wm/WindowManagerService.java
// Determine whether a hard keyboard is available and enabled.
boolean hardKeyboardAvailable = config.keyboard != Configuration.KEYBOARD_NOKEYS;
if (hardKeyboardAvailable != mHardKeyboardAvailable) {
mHardKeyboardAvailable = hardKeyboardAvailable;
mHardKeyboardEnabled = false;
mH.removeMessages(H.REPORT_HARD_KEYBOARD_STATUS_CHANGE);
mH.sendEmptyMessage(H.REPORT_HARD_KEYBOARD_STATUS_CHANGE);
}
if (!mHardKeyboardEnabled) {
config.keyboard = Configuration.KEYBOARD_NOKEYS;
}
上面标注绿色的地方是改动的代码,
mHardKeyboardEnabled=hardKeyboardAvailable;源代码是这样的,
mHardKeyboardEnabled = false;修改为false,可实现需求。