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

安卓学习之-ConnectivityManager(判断网络连接)

2016-06-30 21:34 549 查看
/**
* Android 网络判断类,用来判断网络状态
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
使用方法:

(1)先初始化

//初始化网络状态检测类
NetworkStateUtils.instance().init(this);
(2)判断是否联网

NetworkStateUtils.instance().isNetworkConnected();
* @author admin
*
*/
public class NetworkStateUtils {
//此处用了单例设计模式,系统中此类对象只能存在一个,适用场景:
// 1. 应用中某个实例对象需要频繁的被访问。
// 2. 应用中每次启动只会存在一个实例。如账号系统,数据库系统。
static NetworkStateUtils s_m = null;

private Context context;
//私有化构造方法
private NetworkStateUtils()
{

}
//给context变量赋值
public void init(Context ctx)
{
context = ctx;
}

public static synchronized NetworkStateUtils instance()
{
if (s_m == null)
{
s_m = new NetworkStateUtils();
}
return s_m;
}

/**
* 判断是否有网络连接
* @return
*/
public boolean isNetworkConnected()
{
if (context == null)
{
return false;
}
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null)
{
return false;
} else
{
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
{
for (int i = 0; i < info.length; i++)
{
if (info[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}
}
}
}
return false;
}
/**
* 判断WIFI网络是否可用
* @return
*/
public boolean isWifiConnected()
{
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网络是否可用
* @return
*/
public boolean isMobileConnected()
{
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;
}
/**
*
* @return int返回联网类型
*/
public int getConnectedType()
{
if (context != null)
{
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager
.getActiveNetworkInfo();
if (mNetworkInfo != null && mNetworkInfo.isAvailable())
{
return mNetworkInfo.getType();
}
}
return -1;
}

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