Android判斷網路狀態

來源:互聯網
上載者:User

標籤:manager   pap   cas   context   ring   equals   狀態   好的   als   

別人寫好的分享一下

 public static class NetWork {        public static final String NETWORK_TYPE_WIFI = "wifi";        public static final String NETWORK_TYPE_3G = "eg";        public static final String NETWORK_TYPE_2G = "2g";        public static final String NETWORK_TYPE_WAP = "wap";        public static final String NETWORK_TYPE_UNKNOWN = "unknown";        public static final String NETWORK_TYPE_DISCONNECT = "disconnect";        public static int getNetworkType(Context context) {            ConnectivityManager connectivityManager = (ConnectivityManager) context                    .getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo networkInfo = connectivityManager == null ? null : connectivityManager.getActiveNetworkInfo();            return networkInfo == null ? -1 : networkInfo.getType();        }        public static String getNetworkTypeName(Context context) {            ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);            NetworkInfo networkInfo;            String type = NETWORK_TYPE_DISCONNECT;            if (manager == null || (networkInfo = manager.getActiveNetworkInfo()) == null) {                return type;            }            if (networkInfo.isConnected()) {                String typeName = networkInfo.getTypeName();                if ("WIFI".equalsIgnoreCase(typeName)) {                    type = NETWORK_TYPE_WIFI;                } else if ("MOBILE".equalsIgnoreCase(typeName)) {                    String proxyHost = android.net.Proxy.getDefaultHost();                    type = TextUtils.isEmpty(proxyHost) ? (isFastMobileNetwork(context) ? NETWORK_TYPE_3G : NETWORK_TYPE_2G)                            : NETWORK_TYPE_WAP;                } else {                    type = NETWORK_TYPE_UNKNOWN;                }            }            return type;        }        private static boolean isFastMobileNetwork(Context context) {            TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);            if (telephonyManager == null) {                return false;            }            switch (telephonyManager.getNetworkType()) {                case TelephonyManager.NETWORK_TYPE_1xRTT:                    return false;                case TelephonyManager.NETWORK_TYPE_CDMA:                    return false;                case TelephonyManager.NETWORK_TYPE_EDGE:                    return false;                case TelephonyManager.NETWORK_TYPE_EVDO_0:                    return true;                case TelephonyManager.NETWORK_TYPE_EVDO_A:                    return true;                case TelephonyManager.NETWORK_TYPE_GPRS:                    return false;                case TelephonyManager.NETWORK_TYPE_HSDPA:                    return true;                case TelephonyManager.NETWORK_TYPE_HSPA:                    return true;                case TelephonyManager.NETWORK_TYPE_HSUPA:                    return true;                case TelephonyManager.NETWORK_TYPE_UMTS:                    return true;                case TelephonyManager.NETWORK_TYPE_EHRPD:                    return true;                case TelephonyManager.NETWORK_TYPE_EVDO_B:                    return true;                case TelephonyManager.NETWORK_TYPE_HSPAP:                    return true;                case TelephonyManager.NETWORK_TYPE_IDEN:                    return false;                case TelephonyManager.NETWORK_TYPE_LTE:                    return true;                case TelephonyManager.NETWORK_TYPE_UNKNOWN:                    return false;                default:                    return false;            }        }    }

 

Android判斷網路狀態

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.