在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/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<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;