获取本机IP、MAC,判断网络是否可用,获取wifi状态
public class NetworkUtil {
/**
* 获取本机IP
*
* @return
*/
public static String getIpAddress() {
try {
Enumeration<NetworkInterface> enumeration = NetworkInterface
.getNetworkInterfaces();
while (enumeration.hasMoreElements()) {
NetworkInterface nextElement = enumeration.nextElement();
Enumeration<InetAddress> enIp = nextElement.getInetAddresses();
while (enIp.hasMoreElements()) {
InetAddress ipaddress = enIp.nextElement();
if (!ipaddress.isLoopbackAddress()) {
return ipaddress.getHostAddress().toString();
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return null;
}
/**
* 判断网络是否可用
*
* @param context
* @return
*/
public static boolean isConnect(Context context) {
// 获取手机所有连接管理对象(包括对wi-fi,net等连接的管理)
try {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
// 获取网络连接管理的对象
NetworkInfo info = connectivity.getActiveNetworkInfo();
if (info != null && info.isConnected()) {
// 判断当前网络是否已经连接
if (info.getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
} catch (Exception e) {
Log.v("====", e.toString());
}
return false;
}
/**
* 获取本机MAC地址
*
* @param ctx
* @return
*/
public static String getMacAddress(Context ctx) {
WifiManager wfMgr = (WifiManager) ctx
.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wfMgr.getConnectionInfo();
return info.getMacAddress();
}
/**
* 获取wifi状态
*
* @param ctx
* @return
*/
public static String getNetWorkStatus(Context ctx) {
WifiManager wfMgr = (WifiManager) ctx
.getSystemService(Context.WIFI_SERVICE);
int state = wfMgr.getWifiState();
String status = null;
switch (state) {
case WifiManager.WIFI_STATE_DISABLED:
status = "使用不可(DISABLED)";
break;
case WifiManager.WIFI_STATE_DISABLING:
status = "停止中(DISABLING)";
break;
case WifiManager.WIFI_STATE_ENABLED:
status = "使用可(ENABLED)";
break;
case WifiManager.WIFI_STATE_ENABLING:
status = "起動中(ENABLING)";
break;
case WifiManager.WIFI_STATE_UNKNOWN:
status = "未知(UNKNOWN)";
break;
}
WifiInfo info = wfMgr.getConnectionInfo();
status += " AP MAC(" + info.getBSSID() + ") DBM値(" + info.getRssi()
+ ")";
return status;
}
}