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

Android之网络连接状态的判定

2015-12-12 20:25 671 查看
获取网络信息需要在AndroidManifest.xml文件中加入相应的权限:

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


一、判断是否有网络连接:

/**
* 判断是否有网络连接
* @param context
* @return
*/

public boolean isNetworkAvailable(Context context) {

// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

if (connectivityManager == null){
return false;
}
else{

// 获取NetworkInfo对象
NetworkInfo[] networkInfo = connectivityManager.getAllNetworkInfo();

if (networkInfo != null && networkInfo.length > 0){

for (int i = 0; i < networkInfo.length; i++){
// 判断当前网络状态是否为连接状态
if (networkInfo[i].getState() == NetworkInfo.State.CONNECTED){
return true;
}
}
}
}

return false;
}


二、判断WIFI网络是否可用:

/**
* 判断WIFI网络是否可用
* @param context
* @return
*/
public boolean isWifiConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo mWiFiNetworkInfo = mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

if (mWiFiNetworkInfo != null) {
return mWiFiNetworkInfo.isAvailable();

}
}

return false;
}


三、判断MOBILE网络是否可用:

/**
* 判断MOBILE网络是否可用
* @param context
* @return
*/
public boolean isMobileConnected(Context context) {
if (context != null) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo mMobileNetworkInfo = mConnectivityManager
.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

if (mMobileNetworkInfo != null) {

return mMobileNetworkInfo.isAvailable();
}
}

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