Check Internet Connectivity
If internet connected then method will return true or false.
This method is used to check weather WI-Fi is connected or not.
Check if device has internet connectivity
Add the required network permissions to the application manifest file:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" />
/** * If network connectivity is available, will return true * * @param context the current context * @return boolean true if a network connection is available */ public static boolean isNetworkAvailable(Context context) { ConnectivityManager connectivity = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity == null) { Log.d("NetworkCheck", "isNetworkAvailable: No"); return false; } // get network info for all of the data interfaces (e.g. WiFi, 3G, LTE, etc.) NetworkInfo[] info = connectivity.getAllNetworkInfo(); // make sure that there is at least one interface to test against if (info != null) { // iterate through the interfaces for (int i = 0; i < info.length; i++) { // check this interface for a connected state if (info[i].getState() == NetworkInfo.State.CONNECTED) { Log.d("NetworkCheck", "isNetworkAvailable: Yes"); return true; } } } return false; }
How to check network strength in android?
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo Info = cm.getActiveNetworkInfo(); if (Info == null || !Info.isConnectedOrConnecting()) { Log.i(TAG, "No connection"); } else { int netType = Info.getType(); int netSubtype = Info.getSubtype(); if (netType == ConnectivityManager.TYPE_WIFI) { Log.i(TAG, "Wifi connection"); WifiManager wifiManager = (WifiManager) getApplication().getSystemService(Context.WIFI_SERVICE); List<ScanResult> scanResult = wifiManager.getScanResults(); for (int i = 0; i < scanResult.size(); i++) { Log.d("scanResult", "Speed of wifi"+scanResult.get(i).level);//The db level of signal } // Need to get wifi strength } else if (netType == ConnectivityManager.TYPE_MOBILE) { Log.i(TAG, "GPRS/3G connection"); // Need to get differentiate between 3G/GPRS } }
How to check network strength
To check exact strength in decibels use this-
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo Info = cm.getActiveNetworkInfo(); if (Info == null || !Info.isConnectedOrConnecting()) { Log.i(TAG, "No connection"); } else { int netType = Info.getType(); int netSubtype = Info.getSubtype(); if (netType == ConnectivityManager.TYPE_WIFI) { Log.i(TAG, "Wifi connection"); WifiManager wifiManager = (WifiManager) getApplication().getSystemService(Context.WIFI_SERVICE); List<ScanResult> scanResult = wifiManager.getScanResults(); for (int i = 0; i < scanResult.size(); i++) { Log.d("scanResult", "Speed of wifi"+scanResult.get(i).level);//The db level of signal } // Need to get wifi strength } else if (netType == ConnectivityManager.TYPE_MOBILE) { Log.i(TAG, "GPRS/3G connection"); // Need to get differentiate between 3G/GPRS } }
To check Network type use this Class-
public class Connectivity { /* * These constants aren't yet available in my API level (7), but I need to * handle these cases if they come up, on newer versions */ 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 /** * Check if there is any connectivity * * @param context * @return */ public static boolean isConnected(Context context) { ConnectivityManager cm = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cm.getActiveNetworkInfo(); return (info != null && info.isConnected()); } /** * Check if there is fast connectivity * * @param context * @return */ 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"; } /** * Check if the connection is fast * * @param type * @param subType * @return */ public static String isConnectionFast(int type, int subType) { if (type == ConnectivityManager.TYPE_WIFI) { System.out.println("CONNECTED VIA 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 ""; } } }