title: ConnectivityManager.requestNetwork() not working as expected
body: <p>I'm trying to temporarily force the device to use mobile data. I'm using <code>ConnectivityManager.requestNetwork()</code>,</p>
  <pre><code>    NetworkRequest.Builder request = new NetworkRequest.Builder();
      request.addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);
      request.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
  
      connectivityManager.requestNetwork(request.build(), newRequestTransportCallback(connectivityManager),
              (int) TimeUnit.SECONDS.toMillis(10));
  </code></pre>
  <p>Where <code>newRequestTransportCallback()</code> returns,</p>
  <pre><code>new ConnectivityManager.NetworkCallback() {
              @Override
              public void onAvailable(Network network) {
                  Log.d(TAG,&quot;Network available: &quot; + network + &quot;, binding...&quot;);
                  if (cm.bindProcessToNetwork(network)) {
                      Log.d(TAG,&quot;Bind successful to network: &quot; + network);
                  } else {
                      Log.w(TAG,&quot;Bind failed to network: &quot; + network);
                  }
              }
  
              @Override
              public void onUnavailable() {
                  Log.w(TAG,&quot;Network not available&quot;);
              }
          };
  </code></pre>
  <p>I can see from my log statements that the request and bind succeed. However, when I subsequently call <code>ConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)</code> it tells me the network is disconnected (and I've tried polling to see if there's some delay in updating the network info with no success either).</p>