title: NetWork On main thread Exception
body: <p>Hi, I try to check network connectivity and Internet present by using following method</p>
  
  <blockquote>
    <p>check = new ConnectionDetector(getApplicationContext());</p>
    
    <p>conn = check.isConnectingToInternet();</p>
  </blockquote>
  
  <pre><code>public class ConnectionDetector {
  
  private Context _context;
  
  public ConnectionDetector(Context context){
      this._context = context;
  }
  
  /**
   * Checking for all possible internet providers
   * **/
  /*public boolean isConnectingToInternet(){
      ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null)
        {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i &lt; info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }
  
        }
        return false;
  }*/
  
  public boolean isConnectingToInternet(){
      try{
          ConnectivityManager cm = (ConnectivityManager)_context.getSystemService
                                                      (Context.CONNECTIVITY_SERVICE);
          NetworkInfo netInfo = cm.getActiveNetworkInfo();
          Log.d("NetInfo", String.valueOf(netInfo));
          if (netInfo != null &amp;&amp; netInfo.isConnected())
          {
              //Network is available but check if we can get access from the network.
              URL url = new URL("http://www.Google.com/");
              HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
              urlc.setRequestProperty("Connection", "close");
              urlc.setConnectTimeout(2000); // Timeout 2 seconds.
              urlc.connect();
              Log.d("NetInfo Response Code", String.valueOf(urlc.getResponseCode()));
             // Toast.makeText(getApplicationContext(), String.valueOf(urlc.getResponseCode()), Toast.LENGTH_LONG).show();
              if (urlc.getResponseCode() == 200)  //Successful response.
              {
                  return true;
              } 
              else 
              {
                   Log.d("NO INTERNET", "NO INTERNET");
                  return false;
              }
          }
      }
      catch(Exception e)
      {
          e.printStackTrace();
      }
      return false;
  }
  </code></pre>
  
  <p>}</p>
  
  <p>Note : </p>
  
  <p>But this will return NetworkOnMainThread Exception like follows.kindly any one suggest me what mistakes i made.......</p>
  
  <pre><code>03-27 12:53:35.617: W/System.err(1095): android.os.NetworkOnMainThreadException
  03-27 12:53:35.627: W/System.err(1095):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
  03-27 12:53:35.637: W/System.err(1095):     at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
  03-27 12:53:35.637: W/System.err(1095):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
  03-27 12:53:35.647: W/System.err(1095):     at java.net.InetAddress.getAllByName(InetAddress.java:220)
  03-27 12:53:35.647: W/System.err(1095):     at libcore.net.http.HttpConnection.&lt;init&gt;(HttpConnection.java:71)
  03-27 12:53:35.657: W/System.err(1095):     at libcore.net.http.HttpConnection.&lt;init&gt;(HttpConnection.java:50)
  03-27 12:53:35.668: W/System.err(1095):     at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
  03-27 12:53:35.668: W/System.err(1095):     at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
  03-27 12:53:35.677: W/System.err(1095):     at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
  03-27 12:53:35.687: W/System.err(1095):     at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
  03-27 12:53:35.699: W/System.err(1095):     at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
  03-27 12:53:35.699: W/System.err(1095):     at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
  03-27 12:53:35.707: W/System.err(1095):     at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
  03-27 12:53:35.718: W/System.err(1095):     at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
  03-27 12:53:35.727: W/System.err(1095):     at com.slet.routemytrips.beta.ConnectionDetector.isConnectingToInternet(ConnectionDetector.java:50)
  03-27 12:53:35.727: W/System.err(1095):     at com.slet.routemytrips.beta.Disclaimer$1.onClick(Disclaimer.java:178)
  03-27 12:53:35.738: W/System.err(1095):     at android.view.View.performClick(View.java:3480)
  03-27 12:53:35.738: W/System.err(1095):     at android.view.View$PerformClick.run(View.java:13983)
  03-27 12:53:35.748: W/System.err(1095):     at android.os.Handler.handleCallback(Handler.java:605)
  03-27 12:53:35.757: W/System.err(1095):     at android.os.Handler.dispatchMessage(Handler.java:92)
  03-27 12:53:35.757: W/System.err(1095):     at android.os.Looper.loop(Looper.java:137)
  03-27 12:53:35.767: W/System.err(1095):     at android.app.ActivityThread.main(ActivityThread.java:4340)
  03-27 12:53:35.777: W/System.err(1095):     at java.lang.reflect.Method.invokeNative(Native Method)
  03-27 12:53:35.777: W/System.err(1095):     at java.lang.reflect.Method.invoke(Method.java:511)
  03-27 12:53:35.787: W/System.err(1095):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  03-27 12:53:35.797: W/System.err(1095):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  03-27 12:53:35.807: W/System.err(1095):     at dalvik.system.NativeStart.main(Native Method)
  03-27 12:57:05.237: D/dalvikvm(90): GC_CONCURRENT freed 666K, 10% free 12624K/14023K, paused 6ms+10ms
  </code></pre>