您现在的位置:首页 >> 前端 >> 内容

手机网络连接类型判断2/3/4G网络WiFi和无网络工具类的代码教程

时间:2017/11/3 10:24:25 点击:

  核心提示:手机网络连接类型判断2/3/4G网络WiFi和无网络工具类的代码教程public class NetUtils {/*** 判断当前网络类型-1为未知网络0为没有网络连接1网络断开或关闭2为以太网3为...

手机网络连接类型判断2/3/4G网络WiFi和无网络工具类的代码教程

public class NetUtils {

/**

* 判断当前网络类型-1为未知网络0为没有网络连接1网络断开或关闭2为以太网3为WiFi4为2G5为3G6为4G

*/

public static int getNetworkType(Context context) {

ConnectivityManager connectMgr = (ConnectivityManager) context

.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo networkInfo = connectMgr.getActiveNetworkInfo();

if (networkInfo == null) {

/** 没有任何网络 */

return 0;

}

if (!networkInfo.isConnected()) {

/** 网络断开或关闭 */

return 1;

}

if (networkInfo.getType() == ConnectivityManager.TYPE_ETHERNET) {

/** 以太网网络 */

return 2;

} else if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {

/** wifi网络,当激活时,默认情况下,所有的数据流量将使用此连接 */

return 3;

} else if (networkInfo.getType() == ConnectivityManager.TYPE_MOBILE) {

/** 移动数据连接,不能与连接共存,如果wifi打开,则自动关闭 */

switch (networkInfo.getSubtype()) {

case TelephonyManager.NETWORK_TYPE_GPRS:

case TelephonyManager.NETWORK_TYPE_EDGE:

case TelephonyManager.NETWORK_TYPE_CDMA:

case TelephonyManager.NETWORK_TYPE_1xRTT:

case TelephonyManager.NETWORK_TYPE_IDEN:

/** 2G网络 */

case TelephonyManager.NETWORK_TYPE_UMTS:

case TelephonyManager.NETWORK_TYPE_EVDO_0:

case TelephonyManager.NETWORK_TYPE_EVDO_A:

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:

/** 3G网络 */

case TelephonyManager.NETWORK_TYPE_LTE:

/** 4G网络 */

return 4;

}

}

/** 未知网络 */

return -1;

}

}

作者:网络 来源:hbw020的博客