手机网络环境相关的代码

获取本机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;
	}

}

猜你喜欢

转载自44289533.iteye.com/blog/1899911