title: Ask user to start WiFi or 3G on launching an android app if not connected to Internet
body: <p>An android app that accesses some online pages using WebView is what I'm working with. I want to incorporate an option where, if the user is not connected to internet, the application will prompt to switch on WiFi or 3G.</p>
  
  <p>What's the best way to achieve this user convenience point of view?</p>
  
  <p>The code is given below:</p>
  
  <pre><code>package com.url.appname;
  
  
  import android.net.Uri;
  import android.os.Bundle;
  import android.app.Activity;
  import android.content.Intent;
  import android.view.Menu;
  import android.view.Window;
  import android.webkit.ValueCallback;
  import android.webkit.WebView;
  import android.webkit.WebChromeClient;
  import android.webkit.WebViewClient;
  import android.widget.Toast;
  
  public class MainActivity extends Activity {
  
   private WebView wv;  
  
  
   private ValueCallback&lt;Uri&gt; mUploadMessage;  
   private final static int FILECHOOSER_RESULTCODE=1;
  
   @Override  
   protected void onActivityResult(int requestCode, int resultCode,  
                                      Intent intent) {  
    if(requestCode==FILECHOOSER_RESULTCODE)  
    {  
     if (null == mUploadMessage) return;  
              Uri result = intent == null || resultCode != RESULT_OK ? null  
                      : intent.getData();  
              mUploadMessage.onReceiveValue(result);  
              mUploadMessage = null;        
    }  
   }  
  
   @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
  
      wv = new WebView(this);
  //    wv = (WebView) findViewById(R.id.webview);
      wv.loadUrl("http://www.url.com");
  
  
  
      // Let's display the progress in the activity title bar, like the
      // browser app does.
      getWindow().requestFeature(Window.FEATURE_PROGRESS);
  
      wv.getSettings().setJavaScriptEnabled(true);
  
      final Activity activity = this;
  
      wv.setWebViewClient(new WebViewClient(){    
  
         public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
               Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
             }
           });
  
      wv.setWebChromeClient(new WebChromeClient()  {  
  
             public void onProgressChanged(WebView view, int progress) {
                   // Activities and WebViews measure progress with different scales.
                   // The progress meter will automatically disappear when we reach 100%
                   activity.setProgress(progress * 100);
                 }
  
          // For Android 3.0+
          public void openFileChooser( ValueCallback&lt;Uri&gt; uploadMsg, String acceptType ) {  
              mUploadMessage = uploadMsg;  
              Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
              i.addCategory(Intent.CATEGORY_OPENABLE);  
              i.setType("image/*");  
              MainActivity.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), MainActivity.FILECHOOSER_RESULTCODE ); 
              }
  
          // For Android &lt; 3.0
          public void openFileChooser( ValueCallback&lt;Uri&gt; uploadMsg ) {
              openFileChooser( uploadMsg, "" );
              }
  
          // For Android &gt; 4.1
          public void openFileChooser(ValueCallback&lt;Uri&gt; uploadMsg, String acceptType, String capture){
              openFileChooser( uploadMsg, "" );
              }
  
                                  });
        setContentView(wv);      
  
  }
  
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
  }
  
  }e
  </code></pre>