summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorZach Johnson <zachoverflow@google.com>2015-05-19 00:02:27 -0700
committerZach Johnson <zachoverflow@google.com>2015-06-08 13:49:13 -0700
commitb4b9ca7580c75f07330e5222cbd9ccc93b12935e (patch)
tree99c18c384cf567d01d9771533608cee0c158a4d5 /services
parent7631697793a8b82bb2a1cd3adced1b140d266427 (diff)
downloadframeworks_base-b4b9ca7580c75f07330e5222cbd9ccc93b12935e.zip
frameworks_base-b4b9ca7580c75f07330e5222cbd9ccc93b12935e.tar.gz
frameworks_base-b4b9ca7580c75f07330e5222cbd9ccc93b12935e.tar.bz2
Ignore carrier apps when checking for idleness
Also introduce a way to check if a package has carrier privileges for any active phone. Change-Id: If5c5fe07f05ffc90fc21431eb27cf48030c0175b
Diffstat (limited to 'services')
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsService.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 23057c4..633aee8 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -57,6 +57,7 @@ import android.os.SystemClock;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
+import android.telephony.TelephonyManager;
import android.util.ArraySet;
import android.util.AtomicFile;
import android.util.Log;
@@ -725,6 +726,10 @@ public class UsageStatsService extends SystemService implements
return false;
}
+ if (isCarrierApp(packageName)) {
+ return false;
+ }
+
if (mAppWidgetManager != null
&& mAppWidgetManager.isBoundWidgetPackage(packageName, userId)) {
return false;
@@ -754,6 +759,12 @@ public class UsageStatsService extends SystemService implements
return false;
}
+ private boolean isCarrierApp(String packageName) {
+ TelephonyManager telephonyManager = getContext().getSystemService(TelephonyManager.class);
+ return telephonyManager.checkCarrierPrivilegesForPackageAnyPhone(packageName)
+ == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS;
+ }
+
void informListeners(String packageName, int userId, boolean isIdle) {
for (AppIdleStateChangeListener listener : mPackageAccessListeners) {
listener.onAppIdleStateChanged(packageName, userId, isIdle);