判斷手機使用網絡wifi 2G 3G

        ConnectivityManager cManager = (ConnectivityManager) this
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = cManager.getActiveNetworkInfo();
        if(null == networkInfo) {
            netTypeText.setText("無網絡");
        } else {
            switch (networkInfo.getType()) {
            case ConnectivityManager.TYPE_WIFI: //wifi
                netTypeText.setText("WIFI網絡");
                break;
            case ConnectivityManager.TYPE_MOBILE://手機網絡
//                * NETWORK_TYPE_CDMA 網絡類型爲CDMA
//                * NETWORK_TYPE_EDGE 網絡類型爲EDGE
//                * NETWORK_TYPE_EVDO_0 網絡類型爲EVDO0
//                * NETWORK_TYPE_EVDO_A 網絡類型爲EVDOA
//                * NETWORK_TYPE_GPRS 網絡類型爲GPRS
//                * NETWORK_TYPE_HSDPA 網絡類型爲HSDPA
//                * NETWORK_TYPE_HSPA 網絡類型爲HSPA
//                * NETWORK_TYPE_HSUPA 網絡類型爲HSUPA
//                * NETWORK_TYPE_UMTS 網絡類型爲UMTS
//                聯通的3G爲UMTS或HSDPA,移動和聯通的2G爲GPRS或EDGE,電信的2G爲CDMA,電信的3G爲EVDO
                switch (networkInfo.getSubtype()) {
                case TelephonyManager.NETWORK_TYPE_CDMA:
                    netTypeText.setText("電信2G網絡");
                    break;
                case TelephonyManager.NETWORK_TYPE_UMTS:
                case TelephonyManager.NETWORK_TYPE_HSDPA:
                    netTypeText.setText("聯通3G網絡");
                    break;
                case TelephonyManager.NETWORK_TYPE_GPRS:    
                case TelephonyManager.NETWORK_TYPE_EDGE:
                    netTypeText.setText("移動或聯通2G網絡");
                    break;
                default:
                    netTypeText.setText("其餘網絡");
                    break;
                }
                break;
            default:
                break;
            }
        }

一個獲取網絡類型的demo,netTypeText爲TextViewandroid

記得添加權限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>網絡

相關文章
相關標籤/搜索