您的位置:首页 > 理论基础 > 计算机网络

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

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

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

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等等。

再来看使用的例子。

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,提示用户是否进入系统的网络设置界面。

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

<uses-permission

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

---------------------------------------------------------------------------

GL(arui319)

http://blog.csdn.net/arui319

<本文可以转载,但是请保留以上作者信息。谢谢。>

---------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: