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

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

首先需要在AndroidManifest文件中加入如下权限代码:

    <uses-permission   android:name="android.permission.ACCESS_NETWORK_STATE" />

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

01.public class NetworkDetector {  
02.   
03.    public static boolean detect(Activity act) {  
04.        
05.       ConnectivityManager manager = (ConnectivityManager) act  
06.              .getApplicationContext().getSystemService(  
07.                     Context.CONNECTIVITY_SERVICE);  
08.        
09.       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.}  

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

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

再来看使用的例子:

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 DialogInterface.OnClickListener() {  
              @Override  
              public void onClick(DialogInterface dialog, int which) {  
                  startActivityForResult(new Intent(  
                         ACTION_WIRELESS_SETTINGS), 0);  
              }  
           }, new DialogInterface.OnClickListener() {  
              @Override  
              public void onClick(DialogInterface dialog, int which) {  
                  dialog.cancel();  
              }  
           }).show();  
}  

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

文章为转发,文章来源:

GL(arui319)

http://blog.csdn.net/arui319

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

posted @ 2013-05-27 12:00  allenguo227  阅读(154)  评论(0编辑  收藏  举报