Android判断当前网络是否可用--示例代码

  1. <strong>public class NetworkDetector {  
  2.    
  3.     public static boolean detect(Activity act) {  
  4.         
  5.        ConnectivityManager manager = (ConnectivityManager) act  
  6.               .getApplicationContext().getSystemService(  
  7.                      Context.CONNECTIVITY_SERVICE);  
  8.         
  9.        if (manager == null) {  
  10.            return false;  
  11.        }  
  12.         
  13.        NetworkInfo networkinfo = manager.getActiveNetworkInfo();  
  14.         
  15.        if (networkinfo == null || !networkinfo.isAvailable()) {  
  16.            return false;  
  17.        }  
  18.    
  19.        return true;  
  20.     }  
  21. }</strong>  

 

 

 

这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回true

还要进一步说明的是,NetworkInfo类中有一个方法getType(),这个方法可以用来判断当前可用的网络是wifi,还是mobile等等。

 

再来看使用的例子。

 

 

  1. boolean networkState = NetworkDetector.detect(XXXActivity.this);  
  2. if (!networkState) {  
  3.     DialogUtil.openMsgDialog(XXXActivity.this,  
  4.            android.R.drawable.ic_dialog_info,  
  5.            “网络不可用,是否现在设置网络?”, android.R.string.ok,  
  6.            android.R.string.cancel,  
  7.            new DialogInterface.OnClickListener() {  
  8.               @Override  
  9.               public void onClick(DialogInterface dialog, int which) {  
  10.                   startActivityForResult(new Intent(  
  11.                          ACTION_WIRELESS_SETTINGS), 0);  
  12.               }  
  13.            }, new DialogInterface.OnClickListener() {  
  14.               @Override  
  15.               public void onClick(DialogInterface dialog, int which) {  
  16.                   dialog.cancel();  
  17.               }  
  18.            }).show();  
  19. }  

 

 

 

其中XXXActivity是我自己的Activity类,DialogUtil是我自己定义的Dialog应用类。这里的代码片段,是在判断没有网络的情况下,弹出dialog,提示用户是否进入系统的网络设置界面。

 

因为以上代码用到了权限,需要在AndroidManifest文件中加入如下权限代码:

    <uses-permission

       android:name="android.permission.ACCESS_NETWORK_STATE" />

猜你喜欢

转载自chenshichao.iteye.com/blog/2068101