diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index c096fa5f39..95a978124a 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -4066,7 +4066,8 @@ public class ConnectivityService extends IConnectivityManager.Stub synchronized(mRulesLock) { uidRules = mUidRules.get(uid, RULE_ALLOW_ALL); } - if ((uidRules & RULE_ALLOW_ALL) == 0) { + if (mRestrictBackground && (uidRules & RULE_ALLOW_METERED) == 0 + && (uidRules & RULE_TEMPORARY_ALLOW_METERED) == 0) { // we could silently fail or we can filter the available nets to only give // them those they have access to. Chose the more useful option. networkCapabilities.addCapability(NET_CAPABILITY_NOT_METERED);