Fork me on GitHub

Android之网络工具类

网络工具类

public static final int NETWORK_TYPE_EHRPD = 14; // Level 11
public static final int NETWORK_TYPE_EVDO_B = 12; // Level 9
public static final int NETWORK_TYPE_HSPAP = 15; // Level 13
public static final int NETWORK_TYPE_IDEN = 11; // Level 8
public static final int NETWORK_TYPE_LTE = 13; // Level 11

public static boolean isConnected(Context context) {
 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 NetworkInfo info = cm.getActiveNetworkInfo();
return (info != null && info.isConnected()); 
}

public static String isConnectedFast(Context context) {
 ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 NetworkInfo info = cm.getActiveNetworkInfo();
if ((info != null && info.isConnected())) {
  return Connectivity.isConnectionFast(info.getType(),info.getSubtype()); 
  } else
return "No NetWork Access"; 
}
public static String isConnectionFast(int type, int subType) {
if (type == ConnectivityManager.TYPE_WIFI) {
  return "CONNECTED VIA WIFI"; 
} else if (type == ConnectivityManager.TYPE_MOBILE) {
switch (subType) {
      case TelephonyManager.NETWORK_TYPE_1xRTT:
            return "NETWORK TYPE 1xRTT"; // ~ 50-100 kbps
      case TelephonyManager.NETWORK_TYPE_CDMA:
            return "NETWORK TYPE CDMA (3G) Speed: 2 Mbps"; // ~ 14-64 kbps
      case TelephonyManager.NETWORK_TYPE_EDGE:
            return "NETWORK TYPE EDGE (2.75G) Speed: 100-120 Kbps"; //  50-100 kbps
      case TelephonyManager.NETWORK_TYPE_EVDO_0:
            return "NETWORK TYPE EVDO_0"; // ~ 400-1000 kbps
      case TelephonyManager.NETWORK_TYPE_EVDO_A:
            return "NETWORK TYPE EVDO_A"; // ~ 600-1400 kbps
      case TelephonyManager.NETWORK_TYPE_GPRS:
            return "NETWORK TYPE GPRS (2.5G) Speed: 40-50 Kbps"; // ~ 100 kbps
      case TelephonyManager.NETWORK_TYPE_HSDPA:
            return "NETWORK TYPE HSDPA (4G) Speed: 2-14 Mbps"; // ~ 2-14  Mbps
      case TelephonyManager.NETWORK_TYPE_HSPA:
            return "NETWORK TYPE HSPA (4G) Speed: 0.7-1.7 Mbps"; //700-1700 kbps
      case TelephonyManager.NETWORK_TYPE_HSUPA:
            return "NETWORK TYPE HSUPA (3G) Speed: 1-23 Mbps"; // ~ 1-23 Mbps
      case TelephonyManager.NETWORK_TYPE_UMTS:
            return "NETWORK TYPE UMTS (3G) Speed: 0.4-7 Mbps"; // ~ 400-7000 kbps // NOT AVAILABLE YET IN API LEVEL 7
      case Connectivity.NETWORK_TYPE_EHRPD:
            return "NETWORK TYPE EHRPD"; // ~ 1-2 Mbps
      case Connectivity.NETWORK_TYPE_EVDO_B:
            return "NETWORK_TYPE_EVDO_B"; // ~ 5 Mbps
      case Connectivity.NETWORK_TYPE_HSPAP:
            return "NETWORK TYPE HSPA+ (4G) Speed: 10-20 Mbps"; // ~ 10-20 Mbps
      case Connectivity.NETWORK_TYPE_IDEN:
            return "NETWORK TYPE IDEN"; // ~25 kbps
      case Connectivity.NETWORK_TYPE_LTE:
            return "NETWORK TYPE LTE (4G) Speed: 10+ Mbps"; // ~ 10+ Mbps
// Unknown
      case TelephonyManager.NETWORK_TYPE_UNKNOWN:
            return "NETWORK TYPE UNKNOWN";
      default:
            return ""; 
      } 
  } else {
    return ""; 
  } 

作者:kevin2022

出处:https://www.cnblogs.com/kevin2022/p/16399971.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

你可以在这里自定义其他内容

posted @   KevinAt2022  阅读(158)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up light_mode palette
选择主题