Android判断网络是否可用并且开启网络

时间:2021-02-18 22:16:39

package com.pocketdigi.webview;
   import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.net.ConnectivityManager; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.KeyEvent; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.WebViewClient;      public class main extends Activity {     /** Called when the activity is first created. */     WebView wv;     ProgressDialog pd;     Handler handler;           //检测url     private boolean isOpenNetwork() {         ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);         if (connManager.getActiveNetworkInfo() != null) {         return connManager.getActiveNetworkInfo().isAvailable();         }             return false;         }       private void initMoreGames() {           String URL_MOREGAMES = "http://www.baidu.com";           WebView mWebView = (WebView) findViewById(R.id.view_gamesort);                   if (mWebView != null) {               mWebView.requestFocus();               WebSettings webSettings = mWebView.getSettings();               if (webSettings != null) {                   webSettings.setJavaScriptEnabled(true);                   webSettings.setCacheMode(MODE_PRIVATE);                   webSettings.setDefaultTextEncodingName("utf-8");               }                       // 判断网络是否可用               if(isOpenNetwork() == true) {                   mWebView.loadUrl(URL_MOREGAMES);               else {                   AlertDialog.Builder builder = new AlertDialog.Builder(MoreGamesActivity.this);                   builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?");                                       builder.setPositiveButton("是"new DialogInterface.OnClickListener() {                       @Override                       public void onClick(DialogInterface dialog, int which) {                           Intent intent = null;                                                       try {                               String sdkVersion = android.os.Build.VERSION.SDK;                               if(Integer.valueOf(sdkVersion) > 10) {                                   intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);                               }else {                                   intent = new Intent();                                   ComponentName comp = new ComponentName("com.android.settings""com.android.settings.WirelessSettings");                                   intent.setComponent(comp);                                   intent.setAction("android.intent.action.VIEW");                               }                               MoreGamesActivity.this.startActivity(intent);                           catch (Exception e) {                               Log.w(TAG, "open network settings failed, please check...");                               e.printStackTrace();                           }                       }                   }).setNegativeButton("否"new DialogInterface.OnClickListener() {                       @Override                       public void onClick(DialogInterface dialog, int which) {                           dialog.cancel();                                   finish();                       }                   }).show();               }           else {               Log.w(TAG, "mWebView is null, please check...");           }            //检测url end     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);         init();//执行初始化函数         loadurl(wv,"http://baidu.com ");     }           public void init(){         // Progress         pd=new ProgressDialog(main.this);         pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);         pd.setMessage("数据载入中,请稍候!");         // Show/Hide message         handler=new Handler(){         public void handleMessage(Message msg)         {             //定义一个Handler,用于处理下载线程与UI间通讯         if (!Thread.currentThread().isInterrupted())         {         switch (msg.what)         {         case 0:         pd.show();//显示进度对话框         break;         case 1:         pd.hide();//隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。         break;         }         }         super.handleMessage(msg);         }         };         // WebView         wv=(WebView)findViewById(R.id.wv);         wv.getSettings().setJavaScriptEnabled(true);//可用JS         wv.setScrollBarStyle(0);//滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上         wv.setWebViewClient(new WebViewClient(){         public boolean shouldOverrideUrlLoading(final WebView view, final String url) {         loadurl(view,url);//载入网页         return true;         }//重写点击动作,用webview载入           });         wv.setWebChromeClient(new WebChromeClient(){         public void onProgressChanged(WebView view,int progress){//载入进度改变而触发         if(progress==100){         handler.sendEmptyMessage(1);//如果全部载入,隐藏进度对话框         }         super.onProgressChanged(view, progress);         }         });         }                 public boolean onKeyDown(int keyCode, KeyEvent event) {//捕捉返回键         if ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {                wv.goBack();                return true;            }else if(keyCode == KeyEvent.KEYCODE_BACK){             ConfirmExit();//按了返回键,但已经不能返回,则执行退出确认             return true         }            return super.onKeyDown(keyCode, event);        }     public void ConfirmExit(){//退出确认         AlertDialog.Builder ad=new AlertDialog.Builder(main.this);         ad.setTitle("退出");         ad.setMessage("是否退出商城?");         ad.setPositiveButton("是"new DialogInterface.OnClickListener() {//退出按钮             @Override             public void onClick(DialogInterface dialog, int i) {                 // TODO Auto-generated method stub                 main.this.finish();//关闭activity                }         });         ad.setNegativeButton("否",new DialogInterface.OnClickListener() {             @Override             public void onClick(DialogInterface dialog, int i) {                 //不退出不用执行任何操作             }         });         ad.show();//显示对话框     }     public void loadurl(final WebView view,final String url){         new Thread(){             public void run(){                 handler.sendEmptyMessage(0);                 view.loadUrl(url);//载入网页             }         }.start();     }   } 本文是小崔从一位大师的评论转载过来的,如果有抄袭清告诫小崔删掉。小崔最近在做关于这方面的工程,所以为了方便才自己弄下来的。而且可能有点错误,如有发现请大家指点。