diff options
| author | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2019-01-31 04:11:49 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-01-31 04:11:49 +0000 |
| commit | da81d5b658a38e56e64244a98f0ce49267eed1dd (patch) | |
| tree | 62364ea8d2a0d194886b113fb4ac4db59c308857 /core/java/android | |
| parent | 8330d070e8d36f1c77eccb1d056465d58cc3f85c (diff) | |
| parent | 066e3262223a0b8cc1f3970f53070676d60b414a (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.java | 21 |
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 |
