当前位置:操作系统 > 安卓/Android >>

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

在Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况。下面的代码,作为例子,详细说明了对于当前网络情况的判断。

 

先看一个自己定义的应用类。

 

view plaincopy to clipboardprint?
public class NetworkDetector {  
   
    public static boolean detect(Activity act) {  
        
       ConnectivityManager manager = (ConnectivityManager) act  
              .getApplicationContext().getSystemService(  
                     Context.CONNECTIVITY_SERVICE);  
        
       if (manager == null) {  
           return false;  
       }  
        
       NetworkInfo networkinfo = manager.getActiveNetworkInfo();  
        
       if (networkinfo == null || !networkinfo.isAvailable()) {  
           return false;  
       }  
   
       return true;  
    }  

public class NetworkDetector {
 
    public static boolean detect(Activity act) {
     
       ConnectivityManager manager = (ConnectivityManager) act
              .getApplicationContext().getSystemService(
                     Context.CONNECTIVITY_SERVICE);
     
       if (manager == null) {
           return false;
       }
     
       NetworkInfo networkinfo = manager.getActiveNetworkInfo();
     
       if (networkinfo == null || !networkinfo.isAvailable()) {
           return false;
       }
 
       return true;
    }
}

 

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

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

 

再来看使用的例子。

 

view plaincopy to clipboardprint?
boolean networkState = NetworkDetector.detect(XXXActivity.this);  
if (!networkState) {  
    DialogUtil.openMsgDialog(XXXActivity.this,  
           android.R.drawable.ic_dialog_info,  
           “网络不可用,是否现在设置网络?”, android.R.string.ok,  
           android.R.string.cancel,  
           new DialogInte易做图ce.OnClickListener() {  
              @Override 
              public void onClick(DialogInte易做图ce dialog, int which) {  
                  startActivityForResult(new Intent(  
                         ACTION_WIRELESS_SETTINGS), 0);  
              }  
           }, new DialogInte易做图ce.OnClickListener() {  
              @Override 
              public void onClick(DialogInte易做图ce dialog, int which) {  
                  dialog.cancel();  
              }  
           }).show();  

       boolean networkState = NetworkDetector.detect(XXXActivity.this);
       if (!networkState) {
           DialogUtil.openMsgDialog(XXXActivity.this,
                  android.R.drawable.ic_dialog_info,
                  “网络不可用,是否现在设置网络?”, android.R.string.ok,
                  android.R.string.cancel,
                  new DialogInte易做图ce.OnClickListener() {
                     @Override
                     public void onClick(DialogInte易做图ce dialog, int which) {
                         startActivityForResult(new Intent(
                                ACTION_WIRELESS_SETTINGS), 0);
                     }
                  }, new DialogInte易做图ce.OnClickListener() {
                     @Override
                     public void onClick(DialogInte易做图ce dialog, int which) {
                         dialog.cancel();
                     }
                  }).show();
       }

 

其中XXXActivity是我自己

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,