Android 开发工具类 18_NetWorkUtil
检测网络的一个工具包:
1、网络是否可用;
2、判断是否有网络连接;
3、判断 WIFI 网络是否可用;
4、判断 MOBILE 网络是否可用;
5、获取当前网络连接的类型信息;
6、获取当前的网络状态 -1:没有网络 1:WIFI网络2:wap 网络3:net网络;
1 import android.content.Context; 2 import android.net.ConnectivityManager; 3 import android.net.NetworkInfo; 4 5 /** 6 * @Title NetWorkUtil 7 * @Description 是检测网络的一个工具包 8 * @author 淡定 9 */ 10 public class NetWorkUtil { 11 12 public static enum NetType { 13 WIFI, CMNET, CMWAP, NoneNet 14 } 15 16 /** 17 * 网络是否可用 18 * 19 * @param context 20 * @return 21 */ 22 public static boolean isNetworkAvailable(Context context) { 23 24 ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 25 NetworkInfo[] info = mgr.getAllNetworkInfo(); 26 if (info != null) { 27 for (int i = 0; i < info.length; i++) { 28 if (info[i].getState() == NetworkInfo.State.CONNECTED) { 29 return true; 30 } 31 } 32 } 33 return false; 34 } 35 36 /** 37 * 判断是否有网络连接 38 * 39 * @param context 40 * @return 41 */ 42 public static boolean isNetworkConnected(Context context) { 43 if (context != null) { 44 ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 45 NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); 46 if (mNetworkInfo != null) { 47 return mNetworkInfo.isAvailable(); 48 } 49 } 50 return false; 51 } 52 53 /** 54 * 判断WIFI网络是否可用 55 * 56 * @param context 57 * @return 58 */ 59 public static boolean isWifiConnected(Context context) { 60 61 if (context != null) { 62 ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 63 NetworkInfo mWiFiNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 64 if (mWiFiNetworkInfo != null) { 65 return mWiFiNetworkInfo.isAvailable(); 66 } 67 } 68 return false; 69 } 70 71 /** 72 * 判断 MOBILE 网络是否可用 73 * 74 * @param context 75 * @return 76 */ 77 public static boolean isMobileConnected(Context context) { 78 if (context != null) { 79 ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 80 NetworkInfo mMobileNetworkInfo = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 81 if (mMobileNetworkInfo != null) { 82 return mMobileNetworkInfo.isAvailable(); 83 } 84 } 85 return false; 86 } 87 88 /** 89 * 获取当前网络连接的类型信息 90 * 91 * @param context 92 * @return 93 */ 94 public static int getConnectedType(Context context) { 95 96 if (context != null) { 97 ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 98 NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); 99 if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { 100 return mNetworkInfo.getType(); 101 } 102 } 103 return -1; 104 } 105 106 /** 107 * 获取当前的网络状态 -1:没有网络 1:WIFI网络2:wap 网络3:net网络 108 * 109 * @param context 110 * @return 111 */ 112 public static NetType getAPNType(Context context) { 113 114 ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 115 NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); 116 if (networkInfo == null) { 117 return NetType.NoneNet; 118 } 119 int nType = networkInfo.getType(); 120 121 if (nType == ConnectivityManager.TYPE_MOBILE) { 122 if (networkInfo.getExtraInfo().toLowerCase().equals("cmnet")) { 123 return NetType.CMNET; 124 } else { 125 return NetType.CMWAP; 126 } 127 } else if (nType == ConnectivityManager.TYPE_WIFI) { 128 return NetType.WIFI; 129 } 130 return NetType.NoneNet; 131 132 } 133 }
NetworkUtil.java
1 package com.oliver.tcpsocket; 2 3 import android.content.Context; 4 import android.net.ConnectivityManager; 5 import android.net.NetworkInfo; 6 import android.net.wifi.WifiInfo; 7 import android.net.wifi.WifiManager; 8 9 public class NetworkUtil { 10 11 /** 12 *判断wifi是否连接 13 * @param context 14 * @return 15 */ 16 public static boolean isWiFiConnected(Context context){ 17 18 ConnectivityManager connectManager = 19 (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 20 NetworkInfo networkInfo = 21 connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 22 if(networkInfo.isConnected()){ 23 return true; 24 } 25 else{ 26 return false; 27 } 28 } 29 30 /** 31 * 得到wifi连接的IP地址 32 * @param context 33 * @return 34 */ 35 public static String getWifiIP(Context context){ 36 37 WifiManager wifiManager = 38 (WifiManager)context.getSystemService(Context.WIFI_SERVICE); 39 WifiInfo wifiInfo = wifiManager.getConnectionInfo(); 40 int ipAddr = wifiInfo.getIpAddress(); 41 String ipStr = int2string(ipAddr); 42 return ipStr; 43 } 44 45 /** 46 * 输入int 得到String类型的ip地址 47 * @param i 48 * @return 49 */ 50 private static String int2string(int i){ 51 52 return (i & 0xFF)+ "." + ((i >> 8 ) & 0xFF) + "." + ((i >> 16 ) & 0xFF) +"."+((i >> 24 ) & 0xFF ); 53 54 } 55 }