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

【常用工具类】NetUtil(检测当前网络状态)

2015-12-29 14:04 561 查看
public class NetUtil {

/**
* 检测网络是否可用
*
* @return
*/
public static boolean isConnected(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
}

/**
* 检测网络是否为 wifi
*
* @return
*/
public static boolean isConnectionTypeWifi(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork == null) {
return false;
}
boolean isWifi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
return isWifi;
}

/**
* 获取当前网络类型
*
* @return 0:没有网络   1:WIFI网络   2:WAP网络    3:NET网络
*/

public static final int NETTYPE_WIFI = 0x01;
public static final int NETTYPE_CMWAP = 0x02;
public static final int NETTYPE_CMNET = 0x03;

public int getNetworkType() {
int netType = 0;
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo == null) {
return netType;
}
int nType = networkInfo.getType();
if (nType == ConnectivityManager.TYPE_MOBILE) {
String extraInfo = networkInfo.getExtraInfo();
if (!StringUtils.isEmpty(extraInfo)) {
if (extraInfo.toLowerCase().equals("cmnet")) {
netType = NETTYPE_CMNET;
} else {
netType = NETTYPE_CMWAP;
}
}
} else if (nType == ConnectivityManager.TYPE_WIFI) {
netType = NETTYPE_WIFI;
}
return netType;
}

/**
* 打开设置界面
*/
public static void openSetting(Activity activity) {
if (android.os.Build.VERSION.SDK_INT > 10) {
activity.startActivityForResult(new Intent(android.provider.Settings.ACTION_SETTINGS), 1);
} else {
activity.startActivityForResult(new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS), 1);
}
}

/**
* 打开 wifi 设置界面
*/
public void openWifiSetting(Activity activity) {
Intent wifiSettingsIntent = new Intent("android.settings.WIFI_SETTINGS");
activity.startActivityForResult(wifiSettingsIntent, 1);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息