25 private static final String TAG =
"NetworkStateReceiver";
27 public static boolean isMeteredNetwork(Context context)
29 ConnectivityManager cm =
30 (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
31 return cm !=
null && cm.isActiveNetworkMetered();
34 public static void registerNetworkCallback(Context context)
36 ConnectivityManager cm =
37 (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
41 ConnectivityManager.NetworkCallback callback =
new ConnectivityManager.NetworkCallback() {
42 private void update(String event)
44 GlobalApp.IsMeteredNetwork = isMeteredNetwork(context);
45 Log.d(TAG, event +
" - IsMeteredNetwork=" +
GlobalApp.IsMeteredNetwork);
49 public void onCapabilitiesChanged(@NonNull Network n, @NonNull NetworkCapabilities c)
51 update(
"Capabilities Changed");
53 @Override
public void onAvailable(@NonNull Network n)
57 @Override
public void onLost(@NonNull Network n)
63 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
64 cm.registerDefaultNetworkCallback(callback);
66 cm.registerNetworkCallback(
new NetworkRequest.Builder().build(), callback);