总会有客户提一些奇葩的要求,作为技术人员又不能不做,但是又怕与其他项目冲突,所以对其项目进行控制方便其他项目的正常运行。去除飞行模式的代码修改如下,其他几个模式也可按照此方法修改:
frameworks\base\policy\src\com\android\internal\policy\impl\GlobalActions.java
mItems = new ArrayList<Action>();
String[] defaultActions = mContext.getResources().getStringArray(
com.android.internal.R.array.config_globalActionsList);
ArraySet<String> addedKeys = new ArraySet<String>();
for (int i = 0; i < defaultActions.length; i++) {
String actionKey = defaultActions[i];
if (addedKeys.contains(actionKey)) {
// If we already have added this, don't add it again.
continue;
}
if (GLOBAL_ACTION_KEY_POWER.equals(actionKey)) {
mItems.add(new PowerAction());
} else if (GLOBAL_ACTION_KEY_REBOOT.equals(actionKey)) {
mItems.add(mRebootAction);
} else if (GLOBAL_ACTION_KEY_AIRPLANE.equals(actionKey)) {
//自定义字段控制 start
if(!DefineSystemProperties.GLOBAL_ACTION_AIRPLANE_REMOVE){
mItems.add(mAirplaneModeOn);
}
//end
} else if (GLOBAL_ACTION_KEY_BUGREPORT.equals(actionKey)) {
if (Settings.Global.getInt(mContext.getContentResolver(),
Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && isCurrentUserOwner()) {
mItems.add(getBugReportAction());
}
} else if (GLOBAL_ACTION_KEY_SILENT.equals(actionKey)) {
if (mShowSilentToggle) {
mItems.add(mSilentModeAction);
}
} else if (GLOBAL_ACTION_KEY_USERS.equals(actionKey)) {
if (SystemProperties.getBoolean("fw.power_user_switcher", false)) {
addUsersToMenu(mItems);
}
} else if (GLOBAL_ACTION_KEY_SETTINGS.equals(actionKey)) {
mItems.add(getSettingsAction());
} else if (GLOBAL_ACTION_KEY_LOCKDOWN.equals(actionKey)) {
mItems.add(getLockdownAction());
} else {
Log.e(TAG, "Invalid global action key " + actionKey);
}
// Add here so we don't add more than one.
addedKeys.add(actionKey);
}
添加的宏控GLOBAL_ACTION_AIRPLANE_REMOVE,还要在device.mk和DefineSystemProperties.java定义。