Páginas

Pesquisar neste blog

28 de fevereiro de 2019

Como Verificar se o Android está Conectado na Internet

Os dispositivos com sistema Android podem ter acesso à internet através do WiFi ou de uma rede móvel como por exemplo 3G. Em algumas aplicações é interessante verificar se o equipamento está conectado na internet, antes de executar alguma operação que necessita da conexão.

Fazer este tipo de verificação pode ser útil para informar o usuário que o equipamento está sem conexão à internet, antes de executar a tarefa que pode retornar um erro, ou demorar para responder devido à falta de conexão.

Para fazer esta verificação pode-se utilizar a classe ConnectionManager, que através do método getActiveNetworkInfo() permite obter detalhes sobre a rede de dados ativa no momento.

O código abaixo exemplifica uma forma de verificar se o dispositivo está ou não conectado na internet através do método existeConexao() que retorna true se existir algum tipo de conexão WiFi ou Mobile e false se não existir conexão.
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class DetectaConexao {
    private Context _context;
    
    public DetectaConexao(Context context){
        this._context = context;
    }
 
    public boolean existeConexao(){
        ConnectivityManager connectivity = (ConnectivityManager)
         _context.getSystemService(Context.CONNECTIVITY_SERVICE);
          if (connectivity != null) 
          {
              NetworkInfo netInfo = connectivity.getActiveNetworkInfo();
              
              // Se não existe nenhum tipo de conexão retorna false
              if (netInfo == null) {
                return false;
              }
              
              int netType = netInfo.getType();

              // Verifica se a conexão é do tipo WiFi ou Mobile e 
              // retorna true se estiver conectado ou false em
              // caso contrário
              if (netType == ConnectivityManager.TYPE_WIFI || 
                    netType == ConnectivityManager.TYPE_MOBILE) {
                  return netInfo.isConnected();

              } else {
                  return false;
              }
          }else{
            return false;
          }
    }
    
}

Para que seja possível verificar o estado da conexão do dispositivo Android, é necessário incluir a solicitação de permissão de acesso. A solicitação de permissão é apresentada ao usuário somente no momento da instalação da aplicação e deve ser inserida durante a programação no arquivo AndroidManifest.xml.
Para o caso de verificar o estado da rede inserir a seguinte tag no arquivo AndroidManifest.xml:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />