En API 29, NetworkInfo está marcado como obsoleto.
En el pasado, usábamos NetworkInfo para determinar si la red está conectada o no y determinar el tipo de red, luego en Android 10 podemos usar NetworkCapabilities en su lugar
public class netWorkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Network network = connectivityManager.getActiveNetwork();
if(network == null){
Toast.makeText(context,"unavailable",Toast.LENGTH_LONG).show();
}
else{
NetworkCapabilities networkCapabilities = connectivityManager.getNetworkCapabilities(network);
assert networkCapabilities != null;
if(networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR)){
Toast.makeText(context,"Cellular",Toast.LENGTH_LONG).show();
}
if (networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)){
Toast.makeText(context,"WIFI",Toast.LENGTH_LONG).show();
}
}
}
}
Dado que getActiveNetwork requiere api> 23, es mejor agregar el juicio de la versión de api al usarlo y usar NetworkInfo para aquellos por debajo de 23.