很全的Android网络检查工具类
package com.utils;import android.app.Activity;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.telephony.TelephonyManager;import java.text.SimpleDateFormat;import java.util.Date;/*** Created by hui on 2016/10/10.*/public class NetworkCheckUtil {// / 没有连接public static final int NETWORN_NONE = 0;// / wifi连接public static final int NETWORN_WIFI = 1;// / 手机网络数据连接public static final int NETWORN_2G = 2;public static final int NETWORN_3G = 3;public static final int NETWORN_4G = 4;public static final int NETWORN_MOBILE = 5;PRivate NetworkCheckUtil() {}/*** 检查是否有网络,包括WiFi和数据流量* @param context* @return*/public static boolean checkNetwork(Context context) {ConnectivityManager con = (ConnectivityManager) context.getSystemService(Activity.CONNECTIVITY_SERVICE);boolean wifi = con.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();boolean internet = false;if (con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE) != null) {internet = con.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();}if (wifi) {return true;}if (internet) {return true;}return false;}/*** 格式化当前时间 小时:分钟* @return*/public static String formatSystemTime() {SimpleDateFormat format = new SimpleDateFormat("HH:mm");return format.format(new Date());}/*** 获取网络状态* @param context* @return*/public static int getNetworkState(Context context) {ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);if (null == connManager)return NETWORN_NONE;NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo();if (activeNetInfo == null || !activeNetInfo.isAvailable()) {return NETWORN_NONE;}// WifiNetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);if (null != wifiInfo) {NetworkInfo.State state = wifiInfo.getState();if (null != state)if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {return NETWORN_WIFI;}}// 网络NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);if (null != networkInfo) {NetworkInfo.State state = networkInfo.getState();String strSubTypeName = networkInfo.getSubtypeName();if (null != state)if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {switch (activeNetInfo.getSubtype()) {case TelephonyManager.NETWORK_TYPE_GPRS: // 联通2gcase TelephonyManager.NETWORK_TYPE_CDMA: // 电信2gcase TelephonyManager.NETWORK_TYPE_EDGE: // 移动2gcase TelephonyManager.NETWORK_TYPE_1xRTT:case TelephonyManager.NETWORK_TYPE_IDEN:return NETWORN_2G;case TelephonyManager.NETWORK_TYPE_EVDO_A: // 电信3gcase TelephonyManager.NETWORK_TYPE_UMTS:case TelephonyManager.NETWORK_TYPE_EVDO_0:case TelephonyManager.NETWORK_TYPE_HSDPA:case TelephonyManager.NETWORK_TYPE_HSUPA:case TelephonyManager.NETWORK_TYPE_HSPA:case TelephonyManager.NETWORK_TYPE_EVDO_B:case TelephonyManager.NETWORK_TYPE_EHRPD:case TelephonyManager.NETWORK_TYPE_HSPAP:return NETWORN_3G;case TelephonyManager.NETWORK_TYPE_LTE:return NETWORN_4G;default://有机型返回16,17//中国移动 联通 电信 三种3G制式if (strSubTypeName.equalsIgnoreCase("TD-SCDMA") || strSubTypeName.equalsIgnoreCase("WCDMA") || strSubTypeName.equalsIgnoreCase("CDMA2000")) {return NETWORN_3G;} else {return NETWORN_MOBILE;}}}}return NETWORN_NONE;}}
新闻热点
疑难解答