terça-feira, 28 de junho de 2016

Testando conexão com a internet em app Android - Android Studio


Fala galera!

Veremos neste post uma forma simples e rápida de como testar a conexão com a internet no app Android que você está desenvolvendo. 



Talvez você esteja desenvolvendo um app que necessite de uma conexão com a internet e acredita ser legal informar ao usuário que a conexão não está habilitada, por isso seu app ficará com alguns recursos limitados até que seja resolvida essa pendência.

E isto pode ser feito de uma forma simples e com poucas linhas de código. Veja a seguir:

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

   if(connectivityManager.getActiveNetworkInfo() != null
       && connectivityManager.getActiveNetworkInfo().isAvailable()
       && connectivityManager.getActiveNetworkInfo().isConnected()){
                usuarioConectado = true;
   }

A ConnectivityManager é responsável por responder a consultas sobre o estado de conectividade da rede, assim como notificar ao app qualquer mudança ocorrida.

Com uma instância dessa classe inicializada utilizando o método getSystemService(), que informa qual serviço do sistema será utilizado, nesse caso será o Context.CONNECTIVITY_SERVICE. Após instanciado o objeto, podemos fazer a validação necessária.

O método getActiveNetworkInfo() será utilizado para fazer a validação necessária de conexão. Neste exemplo testamos três métodos:

getActiveNetworkInfo(): retorna detalhes sobre a rede de dados padrão ativo no momento;
getActiveNetworkInfo().isAvailable(): indica se a conectividade de rede é possível;
getActiveNetworkInfo().isConnected(): indica se a conectividade de rede existe e é possível estabilizar conexões.

No meio do código inseri uma variável booleana chamada usuarioConectado, apesar de não estar devidamente declarada no código, ela poderia ser utilizada como uma flag para sinalizar se a conexão está ok ou não e assim utilizar algum recurso visual como o Toast para  dar o retorno ao usuário.

Espero que tenho gostado dessa dica e se tiverem algo para compartilhar, escreva nos comentários.

Até mais!

;)

Fonte de pesquisa: Developer Android - ConnectivityManager

Renan Rodrigues Ramos Desenvolvedor

Sou desenvolvedor, amo desenvolvimento de software, músico e apaixonado por filmes e seriados.