title: Send request over Mobile data when WIFI is ON.(Android L)
body: <p>SDK: Android 5.0.1.</p>
  
  <p>Android build:  LRX22C.</p>
  
  <p>Device : Nexus 5.</p>
  
  <p>Problem:
  KITKAT(4.4.4) and below API's</p>
  
  <p>1) <code>startUsingNetworkFeature(int networkType, String feature)</code>
  This method is deprecated. Deprecated in favor of the cleaner <code>requestNetwork(NetworkRequest, ConnectivityManager.NetworkCallback)</code>.</p>
  
  <p>2) <code>requestRouteToHost(int networkType, int hostAddress)</code>
  This method is deprecated. Deprecated in favor of the <code>requestNetwork(NetworkRequest, ConnectivityManager.NetworkCallback)</code>, <code>setProcessDefaultNetwork(Network)</code> and <code>getSocketFactory()</code>.  </p>
  
  <p>were used to send request over Mobile Data Network when WIFI and mobile data were on.</p>
  
  <p>Starting Android L the API's is deprecated and no longer work.</p>
  
  <p>New API's/Classes <code>NetworkRequest.Builder</code>, <code>NetworkRequest</code>, <code>ConnectivityManager.NetworkCallback</code>, <code>requestNetwork</code>, <code>registerNetworkCallback</code> were used.
  <a href="http://developer.android.com/preview/api-overview.html#Wireless" rel="noreferrer">Detail Here on API usage</a>
  <br><a href="http://pbz.kt.agh.edu.pl/~krusek/l-developer-preview/reference/android/net/ConnectivityManager.html" rel="noreferrer">Android L API's</a></p>
  
  <p>Code:</p>
  
  <pre><code>ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
  
  NetworkRequest.Builder builder = new NetworkRequest.Builder();
  
  builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
  builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);
  
  NetworkRequest networkRequest = builder.build();
  connectivityManager.requestNetwork(networkRequest, networkCallback);
  connectivityManager.registerNetworkCallback(networkRequest, networkCallback);
  </code></pre>
  
  <p>Working Scenario:</p>
  
  <p>Only mobile data on <code>onAvailable</code> callback is received.</p>
  
  <p>Not working Scenario:
  Both Mobile and Wifi is on and connected, <code>onAvailable</code> callback is not received from system. Hence not able to set <code>setProcessDefaultNetwork</code>, 
  <code>ConnectivityManager.setProcessDefaultNetwork(preferedNetwork);</code></p>
  
  <p>Frequently: Always</p>
  
  <p>Expected output: Get mobile network avaliabe callback when wifi is on.</p>
  
  <p>Am I missing something here or the firmware has some issues here?</p>
  
  <p>ADB Logs:</p>
  
  <pre><code>09-18 18:50:42.617: I/art(1339): Heap transition to ProcessStateJankImperceptible took 64.332086ms saved at least 225KB
  09-18 18:50:43.060: I/auditd(16947): type=1400 audit(0.0:899): avc:  denied  { getattr } for  comm="ls" path="/persist" dev="mmcblk0p16" ino=2 scontext=u:r:shell:s0 tcontext=u:object_r:persist_file:s0 tclass=dir
  09-18 18:50:43.422: I/ActivityManager(769): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.example.networktest/.MainActivity (has extras)} from pid 1149 on display 0
  09-18 18:50:43.423: I/am_create_task(769): [0,20]
  09-18 18:50:43.423: I/am_create_activity(769): [0,145055245,20,com.example.networktest/.MainActivity,android.intent.action.MAIN,NULL,NULL,270532608]
  09-18 18:50:43.424: I/wm_task_created(769): [20,1]
  09-18 18:50:43.424: I/wm_task_moved(769): [20,1,2]
  09-18 18:50:43.424: I/am_pause_activity(769): [0,613529891,com.google.android.googlequicksearchbox/com.google.android.launcher.GEL]
  09-18 18:50:43.442: I/am_destroy_service(769): [0,453570950,2161]
  09-18 18:50:43.444: D/audio_hw_primary(200): select_devices: out_snd_device(2: speaker) in_snd_device(0: )
  09-18 18:50:43.447: I/am_on_paused_called(1149): [0,com.google.android.launcher.GEL]
  09-18 18:50:43.492: I/am_proc_start(769): [0,16964,10091,com.example.networktest,activity,com.example.networktest/.MainActivity]
  09-18 18:50:43.492: I/ActivityManager(769): Start proc com.example.networktest for activity com.example.networktest/.MainActivity: pid=16964 uid=10091 gids={50091, 3003}
  09-18 18:50:43.497: I/am_create_service(769): [0,565414612,.LightweightIndexService,10009,1339]
  09-18 18:50:43.501: I/art(16964): Late-enabling -Xcheck:jni
  09-18 18:50:43.522: I/am_proc_bound(769): [0,16964,com.example.networktest]
  09-18 18:50:43.524: I/am_restart_activity(769): [0,145055245,20,com.example.networktest/.MainActivity]
  09-18 18:50:43.526: I/art(16964): Profiler disabled.  To enable setprop dalvik.vm.profiler 1
  09-18 18:50:43.533: I/am_create_service(769): [0,28763261,.LightweightIndexService$LightweightWorkerService,10009,1339]
  09-18 18:50:43.536: I/am_destroy_service(769): [0,28763261,1339]
  09-18 18:50:43.575: D/ConnectivityService(769): requestNetwork for NetworkRequest [ id=18, legacyType=-1, [ Transports: CELLULAR Capabilities: NOT_RESTRICTED] ]
  09-18 18:50:43.575: D/ConnectivityService(769): handleRegisterNetworkRequest checking NetworkAgentInfo [WIFI ()]
  09-18 18:50:43.575: D/ConnectivityService(769): sending new NetworkRequest to factories
  09-18 18:50:43.575: D/WIFI(769): got request NetworkRequest [ id=18, legacyType=-1, [ Transports: CELLULAR Capabilities: NOT_RESTRICTED] ] with score 0
  09-18 18:50:43.575: D/WIFI(769):   my score=60, my filter=[ Transports: WIFI Capabilities: INTERNET&amp;NOT_RESTRICTED LinkUpBandwidth&gt;=1048576Kbps LinkDnBandwidth&gt;=1048576Kbps]
  09-18 18:50:43.575: D/Ethernet(769): got request NetworkRequest [ id=18, legacyType=-1, [ Transports: CELLULAR Capabilities: NOT_RESTRICTED] ] with score 0
  09-18 18:50:43.575: D/Ethernet(769):   my score=-1, my filter=[ Transports: ETHERNET Capabilities: INTERNET&amp;NOT_RESTRICTED LinkUpBandwidth&gt;=100000Kbps LinkDnBandwidth&gt;=100000Kbps]
  09-18 18:50:43.575: D/TelephonyNetworkFactory(1113): got request NetworkRequest [ id=18, legacyType=-1, [ Transports: CELLULAR Capabilities: NOT_RESTRICTED] ] with score 0
  09-18 18:50:43.575: D/TelephonyNetworkFactory(1113):   my score=50, my filter=[ Transports: CELLULAR Capabilities: MMS&amp;SUPL&amp;DUN&amp;FOTA&amp;IMS&amp;CBS&amp;IA&amp;RCS&amp;XCAP&amp;EIMS&amp;INTERNET&amp;NOT_RESTRICTED]
  09-18 18:50:43.576: D/TelephonyNetworkFactory(1113): Cellular needs Network for NetworkRequest [ id=18, legacyType=-1, [ Transports: CELLULAR Capabilities: NOT_RESTRICTED] ]
  09-18 18:50:43.576: D/ConnectivityService(769): listenForNetwork for NetworkRequest [ id=19, legacyType=-1, [ Transports: CELLULAR Capabilities: NOT_RESTRICTED] ]
  09-18 18:50:43.577: D/ConnectivityService(769): handleRegisterNetworkRequest checking NetworkAgentInfo [WIFI ()]
  09-18 18:50:43.841: I/am_create_service(769): [0,510459843,.EventLoggerService,10022,2161]
  09-18 18:50:43.855: I/am_create_service(769): [0,271933548,.GetToken,10009,1339]
  09-18 18:50:43.899: I/am_create_service(769): [0,609002555,.GoogleAccountDataService,10009,1339]
  09-18 18:50:43.902: W/GLSUser(1339): GoogleAccountDataService.getToken()
  09-18 18:50:43.910: I/am_destroy_service(769): [0,609002555,1339]
  09-18 18:50:43.914: I/am_destroy_service(769): [0,271933548,1339]
  09-18 18:50:43.996: I/sf_frame_dur(197): [com.google.android.googlequicksearchbox/com.google.android.launcher.GEL,89,0,2,0,1,2,1]
  09-18 18:50:44.299: I/am_destroy_service(769): [0,510459843,2161]
  09-18 18:50:44.760: I/art(16309): Heap transition to ProcessStateJankImperceptible took 6.712188ms saved at least 830KB
  09-18 18:50:48.070: I/auditd(17031): type=1400 audit(0.0:900): avc:  denied  { getattr } for  comm="ls" path="/persist" dev="mmcblk0p16" ino=2 scontext=u:r:shell:s0 tcontext=u:object_r:persist_file:s0 tclass=dir
  09-18 18:50:48.579: I/am_on_resume_called(16964): [0,com.example.networktest.MainActivity]
  09-18 18:50:48.587: D/CanvasContext(16964): Render dirty regions requested: true
  09-18 18:50:48.592: I/am_destroy_service(769): [0,565414612,1339]
  09-18 18:50:48.597: I/art(2161): Heap transition to ProcessStateJankImperceptible took 109.715785ms saved at least 2MB
  09-18 18:50:48.626: W/Adreno-GSL(16964): &lt;ioctl_kgsl_device_getproperty:663&gt;: mmap failed: errno 22 Invalid argument
  09-18 18:50:48.626: I/Adreno-EGL(16964): &lt;qeglDrvAPI_eglInitialize:320&gt;: EGL 1.4 QUALCOMM Build: I10246dbd022c719c705be805d5642cc8fdfbd2a2Date: 03/07/14
  09-18 18:50:48.626: I/CanvasContext(16964): Initialized EGL, version 1.4
  09-18 18:50:48.644: I/art(1149): Heap transition to ProcessStateJankImperceptible took 75.768178ms saved at least 2MB
  09-18 18:50:48.644: D/OpenGLRenderer(16964): Enabling debug mode 0
  09-18 18:50:48.650: I/art(1252): Heap transition to ProcessStateJankImperceptible took 92.615158ms saved at least 384KB
  09-18 18:50:48.688: I/am_activity_launch_time(769): [0,145055245,com.example.networktest/.MainActivity,5230,5230]
  09-18 18:50:48.688: I/ActivityManager(769): Displayed com.example.networktest/.MainActivity: +5s230ms
  09-18 18:50:48.904: I/sf_frame_dur(197): [Starting com.example.networktest,1,0,0,0,0,0,0]
  </code></pre>
  
  <p><strong>EDIT:</strong> <a href="https://mailqa-cn.ihg.com/over-code.google.com/p/android/issues/detail?id=100849" rel="noreferrer">Google bug raised 1</a>  <a href="https://code.google.com/p/android-developer-preview/issues/detail?id=1334" rel="noreferrer">Google bug raised 2</a> What does 
  "No comment was entered for this change" mean from google?</p>
  
  <p>Thanks </p>
  
  <p>Nithin</p>