diff --git a/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java b/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java
index a6f24c2..1fb7e5b 100644
--- a/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java
+++ b/sdk/android/api/org/webrtc/NetworkMonitorAutoDetect.java
@@ -198,8 +198,8 @@
       this.connectivityManager = connectivityManager;
       this.availableNetworks = availableNetworks;
       this.getAllNetworksFromCache =
-          checkFieldTrial(fieldTrialsString, "getAllNetworksFromCache", false);
-      this.requestVPN = checkFieldTrial(fieldTrialsString, "requestVPN", false);
+          checkFieldTrial(fieldTrialsString, "getAllNetworksFromCache", true);
+      this.requestVPN = checkFieldTrial(fieldTrialsString, "requestVPN", true);
       this.includeOtherUidNetworks =
           checkFieldTrial(fieldTrialsString, "includeOtherUidNetworks", false);
     }
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/NetworkMonitorTest.java b/sdk/android/instrumentationtests/src/org/webrtc/NetworkMonitorTest.java
index d81bce2..628b6bd 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/NetworkMonitorTest.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/NetworkMonitorTest.java
@@ -354,7 +354,8 @@
   @Test
   @SmallTest
   public void testConnectivityManager_includeOtherUidNetworks_disabled() {
-    NetworkRequest request = getNetworkRequestForFieldTrials("includeOtherUidNetworks:false");
+    NetworkRequest request = getNetworkRequestForFieldTrials(
+        "requestVPN:false,includeOtherUidNetworks:false");
     assertTrue(request.equals(new NetworkRequest.Builder()
                                   .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                                   .build()));
@@ -363,7 +364,8 @@
   @Test
   @SmallTest
   public void testConnectivityManager_includeOtherUidNetworks_enabled() {
-    NetworkRequest request = getNetworkRequestForFieldTrials("includeOtherUidNetworks:true");
+    NetworkRequest request = getNetworkRequestForFieldTrials(
+        "requestVPN:false,includeOtherUidNetworks:true");
     NetworkRequest.Builder builder =
         new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
