您的位置:首页 > 移动开发 > Android开发

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

2016-01-12 14:11 465 查看
在Android4.4 原生settings 应用选项 不用显示 正在运行和全部 app

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

+    <!--  do not show apk in Apps-->

+    <string-array name="black_package_filter">

+        <item>cn.tv.launcher</item>

+        <item>cn.com.xxxx</item>

+        <item>cn.cibntv.stbdaemon</item>

+    </string-array>

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 @@

         <!-- Memory is critical. -->

         <item>critical</item>

     </string-array>

+

+    <!--  do not show apk in Apps-->

+    <string-array name="black_package_filter">

+        <item>cn.tv.launcher</item>

+        <item>cn.com.xxxx</item>

+    </string-array>

 </resources>

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<AppOpEntry> 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/a
4000
ndroid/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<apps.size(); 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 settings