Android4.4[原生Settings]隐藏apk显示

在Android4.4 原生settings 应用选项 不用显示 正在运行和全部 app




在res/values/arrays.xml 添加过滤的包名


+    
+    
+        cn.tv.launcher
+        cn.com.xxxx


+        cn.cibntv.stbdaemon
+    




diff --git a/res/values/arrays.xml b/res/values/arrays.xml

index 88ddc2b..468afa7 100755
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1181,4 +1181,15 @@
         
         critical
     
+
+    
+    
+        cn.tv.launcher
+        cn.com.xxxx
+    

 
diff --git a/src/com/android/settings/applications/AppOpsState.java b/src/com/android/settings/applications/AppOpsState.java
index c396479..a785c42 100644
--- a/src/com/android/settings/applications/AppOpsState.java
+++ b/src/com/android/settings/applications/AppOpsState.java
@@ -433,6 +433,10 @@ public class AppOpsState {
 
     private void addOp(List entries, AppOpsManager.PackageOps pkgOps,
             AppEntry appEntry, AppOpsManager.OpEntry opEntry, boolean allowMerge, int switchOrder) {
+        String []blackPkg = mContext.getResources().getStringArray(R.array.black_package_filter);
+        for(int i = 0;i < blackPkg.length; i++){
+            if(pkgOps.getPackageName().equals(blackPkg[i]))return;
+        }
         if (allowMerge && entries.size() > 0) {
             AppOpEntry last = entries.get(entries.size()-1);
             if (last.getAppEntry() == appEntry) {
diff --git a/src/com/android/settings/applications/ApplicationsState.java b/src/com/android/settings/applications/ApplicationsState.java
index d2763de..3970de1 100644
--- a/src/com/android/settings/applications/ApplicationsState.java
+++ b/src/com/android/settings/applications/ApplicationsState.java
@@ -33,6 +33,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.regex.Pattern;
 
+import com.android.settings.R;
+
 /**
  * Keeps track of information about all installed applications, lazy-loading
  * as needed.
@@ -572,6 +574,15 @@ public class ApplicationsState {
             if (DEBUG) Log.i(TAG, "Rebuilding...");
             for (int i=0; i                  ApplicationInfo info = apps.get(i);
+                boolean blackFilterApp = false;
+                String []blackPkg = mContext.getResources().getStringArray(R.array.black_package_filter);
+                for(int j = 0;j < blackPkg.length; j++){
+                    if(info.packageName.equals(blackPkg[j])){
+ blackFilterApp = true;
+ break;
+                    }
+                }
+                if(blackFilterApp)continue;
                 if (filter == null || filter.filterApp(info)) {
                     synchronized (mEntriesMap) {
                         if (DEBUG_LOCKING) Log.v(TAG, "rebuild acquired lock");
diff --git a/src/com/android/settings/applications/RunningState.java b/src/com/android/settings/applications/RunningState.java
old mode 100644
new mode 100755
index 94ab11d..ca420b1
--- a/src/com/android/settings/applications/RunningState.java
+++ b/src/com/android/settings/applications/RunningState.java
@@ -1158,7 +1158,18 @@ public class RunningState {
                 if (pi.mPid > 0) {
                     mProcessItems.add(pi);
                 }
-                
+                boolean notadd = false;
+                String []blackPkg = context.getResources().getStringArray(R.array.black_package_filter);
+                for(int j = 0; j < blackPkg.length; j++){
+                    if(pi.mProcessName.equals(blackPkg[j])){
+                        notadd = true;
+                    }
+                }
+                if(notadd){
+                    notadd = false;
+                    Log.v("filter app : ", "==== "+pi.mProcessName+" === ");
+                    continue;
+                }
                 // Now add the services running in it.
                 MergedItem mergedItem = null;
                 boolean haveAllMerged = false;

你可能感兴趣的:(Android,APP)