summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2019-01-31 04:11:49 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-01-31 04:11:49 +0000
commitda81d5b658a38e56e64244a98f0ce49267eed1dd (patch)
tree62364ea8d2a0d194886b113fb4ac4db59c308857 /core/java/android
parent8330d070e8d36f1c77eccb1d056465d58cc3f85c (diff)
parent066e3262223a0b8cc1f3970f53070676d60b414a (diff)
Merge "Merge "Add an API that allows VPNs to declare themselves as metered." am: 62a9b66a38 am: 9563c15d09 am: b8ae5b64a9"
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/net/VpnService.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/core/java/android/net/VpnService.java b/core/java/android/net/VpnService.java
index dc099a46aa2a..784f23311103 100644
--- a/core/java/android/net/VpnService.java
+++ b/core/java/android/net/VpnService.java
@@ -791,6 +791,27 @@ public class VpnService extends Service {
}
/**
+ * Marks the VPN network as metered. A VPN network is classified as metered when the user is
+ * sensitive to heavy data usage due to monetary costs and/or data limitations. In such
+ * cases, you should set this to {@code true} so that apps on the system can avoid doing
+ * large data transfers. Otherwise, set this to {@code false}. Doing so would cause VPN
+ * network to inherit its meteredness from its underlying networks.
+ *
+ * <p>VPN apps targeting {@link android.os.Build.VERSION_CODES#Q} or above will be
+ * considered metered by default.
+ *
+ * @param isMetered {@code true} if VPN network should be treated as metered regardless of
+ * underlying network meteredness
+ * @return this {@link Builder} object to facilitate chaining method calls
+ * @see #setUnderlyingNetworks(Networks[])
+ * @see ConnectivityManager#isActiveNetworkMetered()
+ */
+ public Builder setMetered(boolean isMetered) {
+ mConfig.isMetered = isMetered;
+ return this;
+ }
+
+ /**
* Create a VPN interface using the parameters supplied to this
* builder. The interface works on IP packets, and a file descriptor
* is returned for the application to access them. Each read