diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/net/NetworkPolicyManager.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/core/java/android/net/NetworkPolicyManager.java b/core/java/android/net/NetworkPolicyManager.java index 43ae4fc0a41b..2c2a703b16e2 100644 --- a/core/java/android/net/NetworkPolicyManager.java +++ b/core/java/android/net/NetworkPolicyManager.java @@ -176,6 +176,9 @@ public class NetworkPolicyManager { public static final int FOREGROUND_THRESHOLD_STATE = ActivityManager.PROCESS_STATE_BOUND_FOREGROUND_SERVICE; + /** @hide */ + public static final int TOP_THRESHOLD_STATE = ActivityManager.PROCESS_STATE_BOUND_TOP; + /** * {@link Intent} extra that indicates which {@link NetworkTemplate} rule it * applies to. @@ -247,6 +250,20 @@ public class NetworkPolicyManager { */ public static final int ALLOWED_REASON_RESTRICTED_MODE_PERMISSIONS = 1 << 4; /** + * Flag to indicate that app is exempt from certain network restrictions because of it being + * in the bound top or top procstate. + * + * @hide + */ + public static final int ALLOWED_REASON_TOP = 1 << 5; + /** + * Flag to indicate that app is exempt from low power standby restrictions because of it being + * allowlisted. + * + * @hide + */ + public static final int ALLOWED_REASON_LOW_POWER_STANDBY_ALLOWLIST = 1 << 6; + /** * Flag to indicate that app is exempt from certain metered network restrictions because user * explicitly exempted it. * @@ -770,6 +787,14 @@ public class NetworkPolicyManager { || (capability & ActivityManager.PROCESS_CAPABILITY_NETWORK) != 0; } + /** @hide */ + public static boolean isProcStateAllowedWhileInLowPowerStandby(@Nullable UidState uidState) { + if (uidState == null) { + return false; + } + return uidState.procState <= TOP_THRESHOLD_STATE; + } + /** * Returns true if {@param procState} is considered foreground and as such will be allowed * to access network when the device is in data saver mode. Otherwise, false. |
