盒子开发中,有时候会需要判断网线是否连接,用来切换网线和wifi的连接,下面代码分享下:
ConnectivityManager主要用于管理与网络连接相关的操作用于查询网络连接状态,当网络状态发生改变时通知应用
主要功能有:
当网络状态发生变化时发送广播通知
当网络连接失败后会尝试连接其他网络
为应用提供API,用于获取网络状态信息等
监视网络状态的变化,包括(Wi-Fi,GPRS,UMTS等网络的状态变化)
用法如下:
ConnectivityManager conManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
// 获取代表联网状态的NetWorkInfo对象
NetworkInfo networkInfo = conManager.getActiveNetworkInfo();
通过getActiveNetworkInfo()获取NetworkInfo对象
NetworkInfo描述了当前网络(比如Wifi网络,GPRS网络等)的状态
isConnected()判断网络连接是否存在
getExtrInfo()报告关于网络状态的额外信息,由较低的网络层提供的
getType()获取当前网络的类型mobile or
Wi-Fi getTypeName() 获取当前网络的类型名 “WIFI” or “MOBILE”
isAvailable()判断网络连接(注:isConnected为true,不代表isAvailable为true)
getDetailedState()(详细)报告当前网络状态 getState()报告当前网络状态
所以要想获取当前网络的状态 通过NetworkInfo 就可以了
具体如下:
private boolean isNetworkEnabled() {
ConnectivityManager connManager = (ConnectivityManager) getApplicationContext()
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connManager
.getNetworkInfo(ConnectivityManager.TYPE_ETHERNET);
return networkInfo.isConnected();
}