get Network Connected Type, return values such as: 2G, 3G, 4G - Android Network

Android examples for Network:Network Status

Description

get Network Connected Type, return values such as: 2G, 3G, 4G

Demo Code


//package com.java2s;

import android.content.Context;

import android.net.ConnectivityManager;
import android.net.NetworkInfo;

import android.telephony.TelephonyManager;

public class Main {
    public static String getConnectedType(Context context) {

        String netstyle = "";

        if (context != null) {
            ConnectivityManager mConnectivityManager = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo mNetworkInfo = mConnectivityManager
                    .getActiveNetworkInfo();

            if (mNetworkInfo != null && mNetworkInfo.isAvailable()) {
                netstyle = mNetworkInfo.getTypeName();
                if (netstyle.equalsIgnoreCase("WIFI")) {
                    return "WiFi";
                } else if (netstyle.equalsIgnoreCase("MOBILE")) {
                    switch (mNetworkInfo.getSubtype()) {
                    case TelephonyManager.NETWORK_TYPE_1xRTT:
                        return "2G"; // ~ 50-100 kbps
                    case TelephonyManager.NETWORK_TYPE_CDMA:
                        return "2G"; // ~ 14-64 kbps
                    case TelephonyManager.NETWORK_TYPE_EDGE:
                        return "2G"; // ~ 50-100 kbps
                    case TelephonyManager.NETWORK_TYPE_EVDO_0:
                        return "3G"; // ~ 400-1000 kbps
                    case TelephonyManager.NETWORK_TYPE_EVDO_A:
                        return "3G"; // ~ 600-1400 kbps
                    case TelephonyManager.NETWORK_TYPE_GPRS:
                        return "2G"; // ~ 100 kbps
                    case TelephonyManager.NETWORK_TYPE_HSDPA:
                        return "3G"; // ~ 2-14 Mbps
                    case TelephonyManager.NETWORK_TYPE_HSPA:
                        return "3G"; // ~ 700-1700 kbps
                    case TelephonyManager.NETWORK_TYPE_HSUPA:
                        return "3G"; // ~ 1-23 Mbps
                    case TelephonyManager.NETWORK_TYPE_UMTS:
                        return "3G"; // ~ 400-7000 kbps
                    case TelephonyManager.NETWORK_TYPE_EHRPD:
                        return "3G"; // ~ 1-2 Mbps
                    case TelephonyManager.NETWORK_TYPE_EVDO_B:
                        return "3G"; // ~ 5 Mbps
                    case TelephonyManager.NETWORK_TYPE_HSPAP:
                        return "4G"; // ~ 10-20 Mbps
                    case TelephonyManager.NETWORK_TYPE_IDEN:
                        return "2G"; // ~25 kbps
                    case TelephonyManager.NETWORK_TYPE_LTE:
                        return "4G"; // ~ 10+ Mbps
                    case TelephonyManager.NETWORK_TYPE_UNKNOWN:
                        return "UNKNOWN";
                    default:
                        return netstyle;
                    }/*from www  . j a  va 2s. c  o  m*/
                }
                return netstyle;
            }
        }
        return netstyle;
    }
}

Related Tutorials