Sobes.tech
Junior — Middle

Como é que se pode determinar a disponibilidade de uma ligação de rede?

sobes.tech IA

Resposta da IA

No Android, para determinar a disponibilidade de uma ligação de rede, geralmente usa-se a classe ConnectivityManager. Com ela, é possível verificar se há uma ligação ativa à rede e qual o seu tipo (Wi-Fi, dados móveis, etc.).

Exemplo de verificação da disponibilidade da rede:

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting();

A partir do Android API 29, recomenda-se usar NetworkCapabilities através de ConnectivityManager:

ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
Network network = cm.getActiveNetwork();
NetworkCapabilities capabilities = cm.getNetworkCapabilities(network);
boolean hasInternet = capabilities != null && capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET);