@SuppressWarnings("deprecation") private static boolean isRoaming(ConnectivityManager connectivityManager, NetworkInfo networkInfo) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) { return networkInfo.isRoaming(); } try { NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork()); return capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING); } catch (Exception e) { return networkInfo.isRoaming(); } }
private static boolean checkInternetConnectivity(ConnectivityManager connectivityManager) { if (Util.SDK_INT < 23) { // TODO Check internet connectivity using http://clients3.google.com/generate_204 on API // levels prior to 23. return true; } Network activeNetwork = connectivityManager.getActiveNetwork(); if (activeNetwork == null) { logd("No active network."); return false; } NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(activeNetwork); boolean validated = networkCapabilities == null || !networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); logd("Network capability validated: " + validated); return !validated; }
@Test @Config(minSdk = LOLLIPOP) public void getNetworkCapabilities() throws Exception { NetworkCapabilities nc = new NetworkCapabilities(null); ReflectionHelpers.callInstanceMethod( nc, "addCapability", ClassParameter.from(int.class, NetworkCapabilities.NET_CAPABILITY_MMS)); shadowOf(connectivityManager).setNetworkCapabilities( shadowOf(connectivityManager).getActiveNetwork(), nc); assertThat( shadowOf(connectivityManager) .getNetworkCapabilities(shadowOf(connectivityManager).getActiveNetwork()) .hasCapability(NetworkCapabilities.NET_CAPABILITY_MMS)) .isTrue(); }
final Network network = connectivityManager.getActiveNetwork(); final NetworkCapabilities capabilities = connectivityManager .getNetworkCapabilities(network); return capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); Network activeNetwork=connectivityManager.getActiveNetwork(); NetworkCapabilities networkCapabilities=connectivityManager.getNetworkCapabilities(activeNetwork); if(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)){ //DO SOMETHING }
@RequiresApi(api = Build.VERSION_CODES.M) private static boolean hasInternetConnectionM(final Context context) { final ConnectivityManager connectivityManager = (ConnectivityManager)context. getSystemService(Context.CONNECTIVITY_SERVICE); final Network network = connectivityManager.getActiveNetwork(); final NetworkCapabilities capabilities = connectivityManager .getNetworkCapabilities(network); return capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); }
public static boolean hasInternetConnection(final Context context) { final ConnectivityManager connectivityManager = (ConnectivityManager)context. getSystemService(Context.CONNECTIVITY_SERVICE); final Network network = connectivityManager.getActiveNetwork(); final NetworkCapabilities capabilities = connectivityManager .getNetworkCapabilities(network); return capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); }
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); Network[] networks = cm.getAllNetworks(); Log.i(TAG, "Network count: " + networks.length); for(int i = 0; i < networks.length; i++) { NetworkCapabilities caps = cm.getNetworkCapabilities(networks[i]); Log.i(TAG, "Network " + i + ": " + networks[i].toString()); Log.i(TAG, "VPN transport is: " + caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN)); Log.i(TAG, "NOT_VPN capability is: " + caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)); }
@SuppressLint("NewApi") @TargetApi(Build.VERSION_CODES.LOLLIPOP) private static boolean isNetworkReachable( @NonNull final NetworkCapabilities capabilities, @NonNull final NetworkInfo info) { if (DEBUG) Log.v(TAG, "isNetworkReachable:capabilities=" + capabilities); if (DEBUG) Log.v(TAG, "isNetworkReachable:info=" + info); final NetworkInfo.DetailedState state = info.getDetailedState(); final boolean isConnectedOrConnecting = (state == NetworkInfo.DetailedState.CONNECTED) || (state == NetworkInfo.DetailedState.CONNECTING); final boolean hasCapability; if (BuildCheck.isPie()) { hasCapability = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) // API>=21 && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED) // API>=23 && (capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED) // API>=28 || capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_FOREGROUND)); // API>=28 } else if (BuildCheck.isMarshmallow()) { hasCapability = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) // API>=21 && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED); // API>=23 } else { hasCapability = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);// API>=21 } if (DEBUG) Log.v(TAG, "isNetworkReachable:isConnectedOrConnecting=" + isConnectedOrConnecting + ",hasCapability=" + hasCapability + ",NOT_SUSPENDED=" + capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_SUSPENDED) + ",FOREGROUND=" + capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_FOREGROUND)); return isConnectedOrConnecting && hasCapability; }
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); Network[] networks = cm.getAllNetworks(); Log.i(TAG, "Network count: " + networks.length); for(int i = 0; i < networks.length; i++) { NetworkCapabilities caps = cm.getNetworkCapabilities(networks[i]); Log.i(TAG, "Network " + i + ": " + networks[i].toString()); Log.i(TAG, "VPN transport is: " + caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN)); Log.i(TAG, "NOT_VPN capability is: " + caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)); }
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE); Network[] networks = cm.getAllNetworks(); Log.i(TAG, "Network count: " + networks.length); for(int i = 0; i < networks.length; i++) { NetworkCapabilities caps = cm.getNetworkCapabilities(networks[i]); Log.i(TAG, "Network " + i + ": " + networks[i].toString()); Log.i(TAG, "VPN transport is: " + caps.hasTransport(NetworkCapabilities.TRANSPORT_VPN)); Log.i(TAG, "NOT_VPN capability is: " + caps.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_VPN)); }
/** * Returns true if {@code network} can provide Internet access. Can be used to * ignore specialized networks (e.g. IMS, FOTA). */ @SuppressLint("NewApi") boolean hasInternetCapability(Network network) { if (connectivityManager == null) { return false; } final NetworkCapabilities capabilities = connectivityManager.getNetworkCapabilities(network); return capabilities != null && capabilities.hasCapability(NET_CAPABILITY_INTERNET); }
public static boolean isCaptivePortal(Context context, StatusBarNotification sbn) { String tag = sbn.getTag(); if (TextUtils.equals(tag, "CaptivePortal.Notification")) { return true; } if (TextUtils.equals(tag, "Connectivity.Notification") || (!TextUtils.isEmpty(tag) && tag.startsWith("ConnectivityNotification:"))) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService("connectivity"); for (Network network : connectivityManager.getAllNetworks()) { if (connectivityManager.getNetworkInfo(network).isConnected() && connectivityManager.getNetworkCapabilities(network).hasCapability(17)) { return true; } } } return false; }
@TargetApi(Build.VERSION_CODES.P) public static boolean isRoaming(ConnectivityManager cm) { if (isApi28OrGreater()) { NetworkCapabilities capabilities = cm.getNetworkCapabilities(cm.getActiveNetwork()); return capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_ROAMING); } NetworkInfo ni = cm.getActiveNetworkInfo(); return ni.isRoaming(); } }
ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); Network[] activeNetworks=connectivityManager.getAllNetworks(); for(Network network:activeNetworks){ if(connectivityManager.getNetworkInfo(network).isConnected()){ NetworkCapabilities networkCapabilities=connectivityManager.getNetworkCapabilities(network); if(networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL)){ //DO SOMETHING } break; } }