开发平台基本信息
芯片: SDM450
版本: Android 9.0
kernel: msm-4.9
问题描述
最近有个客户提出个定制需求,要求禁止所有应用的下拉通知;于是,在framework中,对通知管理类进行拦截,禁止应用通知。这里读取通过Setting数据库来判断是否禁止通知。
解决方法
--- a/frameworks/base/core/java/android/app/NotificationManager.java
+++ b/frameworks/base/core/java/android/app/NotificationManager.java
@@ -57,6 +57,9 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
@@ -500,6 +503,12 @@ public class NotificationManager {
private Notification fixNotification(Notification notification) {
String pkg = mContext.getPackageName();
+ String disableNotification = android.provider.Settings.System.getString(mContext.getContentResolver(),"key_disable_notification");
+ if(disableNotification != null){
+ if(disableNotification.equals("true")){
+ return null;
+ }
+ }
// Fix the notification as best we can.
Notification.addFieldsFromContext(mContext, notification);