需求是要求固件默认关闭优先打扰内容里边所有选项,删除自动规则里边的所有内容
开始以为是在默认设置里边修改,后面发现这个配置使用的是/data/system/notification_policy.xml文件,
在frameworks里边的默认配置文件是 frameworks/base/core/res/res/xml/default_zen_mode_config.xml
不过这个默认配置只是能关闭 “活动”与“提醒”等默认设置,没有“自动规则”下的默认配置。
“自动规则”下的默认配置 按如下修改可以实现:
index 15549d234ab..e278d7d3724 100644
--- a/services/core/java/com/android/server/notification/ZenModeHelper.java
+++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
@@ -116,8 +116,8 @@ public class ZenModeHelper {
addCallback(mMetrics);
mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
mDefaultConfig = readDefaultConfig(context.getResources());
- appendDefaultScheduleRules(mDefaultConfig);
- appendDefaultEventRules(mDefaultConfig);
+ //appendDefaultScheduleRules(mDefaultConfig);
+ // appendDefaultEventRules(mDefaultConfig);
mConfig = mDefaultConfig;
mConfigs.put(UserHandle.USER_SYSTEM, mConfig);
mSettingsObserver = new SettingsObserver(mHandler);
@@ -914,9 +914,9 @@ public class ZenModeHelper {
rt.automaticRules.put(ZenModeConfig.newRuleId(), rule);
} else {
Log.i(TAG, "No existing V1 downtime found, generating default schedules");
- appendDefaultScheduleRules(rt);
+ // appendDefaultScheduleRules(rt);
}
- appendDefaultEventRules(rt);
+ // appendDefaultEventRules(rt);
return rt;
}
};
省略了很多调试与阅读代码过程,在这里记录下解决方法。