开发一款基于网络的手机应用,必然需要去判断手机的联网状态,以及网络是否可用。
首先,自定义一个网络状态帮助类 NetworkUtils,
定义一个判断网络是否可用的方法isEnable:
package com.ddjd.webclient.util;
import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
/***
*
* 此类描述的是: Network 帮助类
*
* @author: CS YX
* @version:1.0
* @date:2014-9-22 上午9:33:09
*/
public class NetworkUtils {
/***
*
* 此方法描述的是: 判断网络状态是否可用
*
* @param activity
* Activity参数
* @return boolean 返回是否可用,true可用,false不可用
*/
public static boolean isEnable(Activity activity) {
// 网络获得管理器
ConnectivityManager manager = (ConnectivityManager) activity
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
// 判断网络管理器是否为null
if (manager == null) {
return false;
}
// 获得网络连接信息
NetworkInfo networkInfo = manager.getActiveNetworkInfo();
// 判断 netwokInfo是否为null networkInfo是否可用
if (networkInfo == null || !networkInfo.isAvailable()) {
return false;
}
// 网络状态可用
return true;
}
}
在需要调用网络处添加代码判断网络:
// 判断网络是否可用
boolean flag = NetworkUtils.isEnable(LoginActivity.this);
if (!flag) {
// 网络不可用 提示用户设置网络
new AlertDialog.Builder(LoginActivity.this).setTitle("提示")
.setMessage("网络连接不可用,是否现在设置?")
.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
}
}).setPositiveButton("设置", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
startActivity(new Intent(Settings.ACTION_SETTINGS));
}
}).show();
} else {
// 联网操作
}
最后,添加用户权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />